ord
ord
是一個索引、區塊瀏覽器和命令列錢包。它是實驗性軟體,沒有保證。有關更多詳細信息,請參閱許可證。
序數理論賦予聰以錢幣價值,使它們能夠作為古董被收集和交易。
序數是聰的序號,依照開採順序分配,並在交易中保存。
請參閱文件以取得文件和指南。
有關分配和傳輸演算法的技術說明,請參閱 BIP。
請參閱專案委員會以了解目前優先考慮的問題。
加入 Discord 伺服器與其他墮落者聊天。
Ordinals 是開源的並由社群資助。 ord
目前的主要維護者是 raphjaph。 Raph 在ord
上的工作完全由捐款資助。如果可以的話,請考慮捐贈!
捐款地址為bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3。
該位址是 4 個多重簽名錢包中的 2 個,金鑰由 raphjaph、erin、rodarmor 和ordinally 持有。
收到的比特幣將用於資助ord
的維護和開發,以及 ordinals.com 的託管費用。
感謝您的捐贈!
ord
依賴 Bitcoin Core 進行私鑰管理和交易簽章。為了安全地使用ord
wallet 命令,您必須了解這有許多含義:
比特幣核心不知道銘文,也不執行衛星控制。使用bitcoin-cli
指令和 RPC 呼叫與ord
錢包可能會導致銘文遺失。
ord wallet
指令自動載入--name
選項指定的ord
錢包,預設為「ord」。請記住,執行ord wallet
指令後,可能會載入ord
wallet。
由於ord
可以存取您的 Bitcoin Core 錢包,因此ord
不應與包含大量資金的錢包一起使用。將序數錢包和基數錢包分開。
Alpha ord
錢包與先前版本的ord
創建的錢包不相容。要遷移,請使用舊錢包中的ord wallet send
將 sat 和銘文發送到新錢包使用ord wallet receive
產生的地址。
ord
是用 Rust 寫的,可以從原始碼建置。發布頁面上提供了預先建置的二進位檔案。
您可以使用以下命令從命令列安裝最新的預先建置二進位檔案:
curl --proto ' =https ' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
安裝ord
後,您應該能夠在命令列上執行ord --version
。
在 Linux 上, ord
從原始碼建置時需要libssl-dev
。
在 Debian 衍生的 Linux 發行版(包括 Ubuntu)上:
sudo apt-get install pkg-config libssl-dev build-essential
在 Red Hat 衍生的 Linux 發行版上:
yum install -y pkgconfig openssl-devel
yum groupinstall "Development Tools"
你還需要 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
克隆ord
儲存庫:
git clone https://github.com/ordinals/ord.git
cd ord
要建立特定版本的ord
,請先簽出該版本:
git checkout <VERSION>
最後實際建構ord
:
cargo build --release
建置完成後,可以在./target/release/ord
找到ord
二進位。
ord
需要rustc
版本 1.79.0 或更高版本。運行rustc --version
以確保您擁有此版本。執行rustup update
以獲得最新的穩定版本。
Docker 映像可以透過以下方式建置:
docker build -t ordinals/ord .
ord
在 Homebrew 中可用:
brew install ord
要建置.deb
套件:
cargo install cargo-deb
cargo deb
如果您想做出貢獻,了解一些有幫助的事情。我們非常重視程式碼庫中的正確測試,包括三大類測試:單元測試、整合測試和模糊測試。單元測試通常可以在檔案底部名為tests
的mod 區塊中找到。如果新增或修改功能,請同時新增對應的測試。整合測試嘗試透過執行二進位檔案的子命令來測試端對端功能。這些可以在測試目錄中找到。我們沒有太多的模糊測試,但是我們如何做的基本結構可以在 fuzz 目錄中找到。
我們強烈建議安裝只是為了讓執行測試更容易。要運行我們的 CI 測試套件,您需要執行以下操作:
just ci
這對應於命令:
cargo fmt -- --check
cargo test --all
cargo test --all -- --ignored
查看 justfile 以了解一些更有用的食譜(命令)。這裡有一些更好的:
just fmt
just fuzz
just doc
just watch ltest --all
如果測試失敗或掛起,您可能需要在執行測試之前在 shell 中或在 shell 配置中執行ulimit -n 1024
來增加開啟檔案的最大數量。
我們也嘗試遵循 TDD(測試驅動開發)方法,這意味著我們使用測試來了解程式碼。因此,測試必須快速運行,以便做出更改、運行測試和查看結果之間的反饋循環很小。為了方便我們在mockcore中建立了一個模擬的Bitcoin Core實例
ord
需要一個帶有-txindex
的同步bitcoind
節點來建構 satoshi 位置的索引。 ord
透過 RPC 與bitcoind
通訊。
如果bitcoind
由同一用戶在本地運行,無需額外配置, ord
應該透過從bitcoind
的 datadir 讀取.cookie
檔案並使用預設 RPC 連接埠進行連接來自動找到它。
如果bitcoind
不在主網上,不是由同一用戶運行,具有非預設資料目錄或非預設端口,則您需要將其他標誌傳遞給ord
。有關詳細信息,請參閱ord --help
。
bitcoind
RPC 身份驗證ord
對bitcoind
進行 RPC 調用,這通常需要使用者名稱和密碼。
預設情況下, ord
在bitcoind
建立的 cookie 檔案中尋找使用者名稱和密碼。
可以使用--cookie-file
配置 cookie 檔案路徑:
ord --cookie-file /path/to/cookie/file server
或者,可以在命令列上為ord
提供使用者名稱和密碼:
ord --bitcoin-rpc-username foo --bitcoin-rpc-password bar server
使用環境變數:
export ORD_BITCOIN_RPC_USERNAME=foo
export ORD_BITCOIN_RPC_PASSWORD=bar
ord server
或在設定檔中:
bitcoin_rpc_username : foo
bitcoin_rpc_password : bar
ord
使用 env_logger。設定RUST_LOG
環境變數以開啟日誌記錄。例如,運行伺服器並顯示info
級日誌訊息及以上:
$ RUST_LOG=info cargo run server
設定RUST_BACKTRACE
環境變數以開啟完整的 rust 回溯。例如,運行伺服器並打開偵錯和完整回溯:
$ RUST_BACKTRACE=1 RUST_LOG=debug ord server
發布提交訊息使用以下範本:
Release x.y.z
- Bump version: x.y.z → x.y.z
- Update changelog
- Update changelog contributor credits
- Update dependencies
為了翻譯文檔,我們使用 mdBook i18n 助手。
請參閱 mdbook-i18n-helpers 使用指南以取得協助。
新增翻譯有些複雜,因此即使您的翻譯不完整,也可以隨時開始翻譯並開啟拉取要求。
查看此提交以取得新增翻譯的範例。維護人員將幫助您將其整合到我們的建置系統中。
要開始新翻譯:
安裝mdbook
、 mdbook-i18n-helpers
和mdbook-linkcheck
:
cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
產生一個名為messages.pot
的新pot
檔:
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
mdbook build -d po
在XX.po
上執行msgmerge
,其中XX
是您要翻譯的語言的兩個字母的 ISO-639 代碼。這將使用最新英文版本的文字更新po
檔:
msgmerge --update po/XX.po po/messages.pot
未翻譯的部分用 # 標記,在XX.po
中#, fuzzy
。使用翻譯後的文字編輯msgstr
字串。
執行mdbook
指令來重建文件。對於中文,其兩個字母的 ISO-639 代碼是zh
:
mdbook build docs -d build
MDBOOK_BOOK__LANGUAGE=zh mdbook build docs -d build/zh
mv docs/build/zh/html docs/build/html/zh
python3 -m http.server --directory docs/build/html --bind 127.0.0.1 8080
如果一切看起來都不錯,請提交XX.po
並在 GitHub 上開啟拉取請求。其他更改的文件應從拉取請求中省略。