ord
ord
คือดัชนี ตัวสำรวจบล็อก และกระเป๋าเงินบรรทัดคำสั่ง เป็นซอฟต์แวร์ทดลองที่ไม่มีการรับประกัน ดูใบอนุญาตสำหรับรายละเอียดเพิ่มเติม
ทฤษฎีลำดับได้ประดับ satoshis ด้วยมูลค่าทางเหรียญ ทำให้สามารถรวบรวมและซื้อขายเป็นของโบราณได้
หมายเลขลำดับคือหมายเลขประจำเครื่องสำหรับ satoshi ซึ่งกำหนดตามลำดับการขุดและเก็บรักษาไว้ในธุรกรรมต่างๆ
ดูเอกสารสำหรับเอกสารประกอบและคำแนะนำ
ดู BIP สำหรับคำอธิบายทางเทคนิคของอัลกอริทึมการมอบหมายและการถ่ายโอน
ดูบอร์ดโครงการสำหรับปัญหาที่มีลำดับความสำคัญในปัจจุบัน
เข้าร่วมเซิร์ฟเวอร์ Discord เพื่อสนทนากับเพื่อนลำดับที่เสื่อมถอย
Ordinals เป็นโอเพ่นซอร์สและได้รับทุนสนับสนุนจากชุมชน ผู้ดูแล ord
คนปัจจุบันคือราฟจาฟ งานของ Raph ใน ord
ได้รับทุนสนับสนุนทั้งหมดจากการบริจาค หากทำได้ โปรดพิจารณาบริจาค!
ที่อยู่การบริจาคคือ bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3
ที่อยู่นี้คือกระเป๋าสตางค์หลายใบ 2 ใน 4 ใบที่มีกุญแจถือโดย raphjaph, erin, rodarmor และตามปกติ
Bitcoin ที่ได้รับจะนำไปใช้เป็นเงินทุนในการบำรุงรักษาและพัฒนา ord
เช่นเดียวกับค่าใช้จ่ายในการโฮสต์สำหรับ ordinals.com
ขอบคุณสำหรับการบริจาค!
ord
อาศัย Bitcoin Core สำหรับการจัดการคีย์ส่วนตัวและการลงนามธุรกรรม สิ่งนี้มีผลกระทบหลายประการที่คุณต้องเข้าใจเพื่อใช้คำสั่ง ord
wallet อย่างปลอดภัย:
Bitcoin Core ไม่ทราบถึงคำจารึกและไม่ทำการควบคุม sat การใช้คำสั่ง bitcoin-cli
และการเรียก RPC ด้วย ord
wallets อาจทำให้สูญเสียคำจารึก
คำสั่ง ord wallet
จะโหลด ord
wallet ที่กำหนดโดยตัวเลือก --name
โดยอัตโนมัติ ซึ่งมีค่าเริ่มต้นเป็น 'ord' โปรดทราบว่าหลังจากรันคำสั่ง ord wallet
แล้ว ord
wallet อาจถูกโหลดแล้ว
เนื่องจาก ord
สามารถเข้าถึงกระเป๋าเงิน Bitcoin Core ของคุณได้ จึงไม่ควรใช้ ord
กับกระเป๋าเงินที่มีจำนวนเงินเป็นสาระสำคัญ แยกกระเป๋าสตางค์ ordinal และ cardinal ออกจากกัน
กระเป๋า Alpha ord
เข้ากันไม่ได้กับกระเป๋าเงินที่สร้างโดย ord
เวอร์ชันก่อนหน้า หากต้องการย้าย ให้ใช้ ord wallet send
จากกระเป๋าเงินเก่าเพื่อส่ง sats และคำจารึกไปยังที่อยู่ที่สร้างโดยกระเป๋าเงินใหม่พร้อม 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
เมื่อสร้างจากแหล่งที่มา
บน Linux ที่ได้รับจาก Debian รวมถึง Ubuntu:
sudo apt-get install pkg-config libssl-dev build-essential
บนลีนุกซ์ที่ได้รับจาก Red Hat:
yum install -y pkgconfig openssl-devel
yum groupinstall "Development Tools"
คุณจะต้องมีสนิมด้วย:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
โคลน repo ของ ord
:
git clone https://github.com/ordinals/ord.git
cd ord
หากต้องการสร้างเวอร์ชันเฉพาะของ ord
ให้ชำระเงินเวอร์ชันนั้นก่อน:
git checkout <VERSION>
และในที่สุดก็สร้าง ord
:
cargo build --release
เมื่อสร้างเสร็จแล้ว คุณจะพบไบนารี ord
อยู่ที่ ./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
หากคุณต้องการมีส่วนร่วม มีบางสิ่งที่เป็นประโยชน์ที่ควรทราบ เราให้ความสำคัญกับการทดสอบที่เหมาะสมในฐานโค้ด โดยมีการทดสอบกว้างๆ สามประเภท: หน่วย การบูรณาการ และฟัซ โดยปกติ Unit Tests จะอยู่ที่ด้านล่างของไฟล์ในบล็อก Mod ที่เรียกว่า tests
หากคุณเพิ่มหรือแก้ไขฟังก์ชัน โปรดเพิ่มการทดสอบที่เกี่ยวข้องด้วย การทดสอบการรวมพยายามทดสอบการทำงานแบบ end-to-end โดยดำเนินการคำสั่งย่อยของไบนารี สามารถพบได้ในไดเร็กทอรีการทดสอบ เราไม่มี fuzzing มากนัก แต่โครงสร้างพื้นฐานของวิธีที่เราทำสามารถพบได้ในไดเร็กทอรี 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
หากการทดสอบล้มเหลวหรือหยุดทำงาน คุณอาจต้องเพิ่มจำนวนไฟล์สูงสุดที่เปิดโดยการรัน ulimit -n 1024
ในเชลล์ของคุณก่อนที่จะรันการทดสอบ หรือในการกำหนดค่าเชลล์ของคุณ
นอกจากนี้เรายังพยายามปฏิบัติตามแนวทาง TDD (Test-Driven-Development) ซึ่งหมายความว่าเราใช้การทดสอบเป็นวิธีหนึ่งในการมองเห็นโค้ด การทดสอบต้องดำเนินการอย่างรวดเร็วด้วยเหตุผลดังกล่าว เพื่อให้ความคิดเห็นวนซ้ำระหว่างการเปลี่ยนแปลง การรันการทดสอบ และการดูผลลัพธ์มีน้อย เพื่ออำนวยความสะดวกที่เราได้สร้างอินสแตนซ์ Bitcoin Core จำลองใน mockcore
ord
ต้องใช้โหนด bitcoind
ที่ซิงค์กับ -txindex
เพื่อสร้างดัชนีของตำแหน่ง satoshi ord
สื่อสารกับ bitcoind
ผ่าน RPC
หาก bitcoind
รันภายในเครื่องโดยผู้ใช้คนเดียวกัน โดยไม่มีการกำหนดค่าเพิ่มเติม ord
ควรค้นหาโดยอัตโนมัติโดยการอ่านไฟล์ .cookie
จาก datadir ของ bitcoind
และเชื่อมต่อโดยใช้พอร์ต RPC เริ่มต้น
หาก bitcoind
ไม่ได้อยู่ใน mainnet ไม่ได้ดำเนินการโดยผู้ใช้คนเดียวกัน มี datadir ที่ไม่ใช่ค่าเริ่มต้น หรือมีพอร์ตที่ไม่ใช่ค่าเริ่มต้น คุณจะต้องส่งแฟล็กเพิ่มเติมไปที่ ord
ดู ord --help
สำหรับรายละเอียด
bitcoind
ord
ทำการโทร RPC ไปที่ bitcoind
ซึ่งโดยปกติต้องใช้ชื่อผู้ใช้และรหัสผ่าน
ตามค่าเริ่มต้น ord
จะค้นหาชื่อผู้ใช้และรหัสผ่านในไฟล์คุกกี้ที่สร้างโดย bitcoind
เส้นทางไฟล์คุกกี้สามารถกำหนดค่าได้โดยใช้ --cookie-file
:
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_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
สร้างไฟล์ pot
ใหม่ชื่อ messages.pot
:
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
mdbook build -d po
เรียกใช้ msgmerge
บน XX.po
โดยที่ XX
คือรหัส ISO-639 ตัวอักษรสองตัวสำหรับภาษาที่คุณกำลังแปล สิ่งนี้จะอัปเดตไฟล์ po
ด้วยข้อความเวอร์ชันภาษาอังกฤษล่าสุด:
msgmerge --update po/XX.po po/messages.pot
ส่วนที่ยังไม่ได้แปลจะถูกทำเครื่องหมายด้วย #, fuzzy
ใน XX.po
แก้ไขสตริง 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 ไฟล์ที่เปลี่ยนแปลงอื่นๆ ควรละเว้นจากคำขอดึง