ord
ord
인덱스, 블록 탐색기 및 명령줄 지갑입니다. 보증이 없는 실험용 소프트웨어입니다. 자세한 내용은 라이센스를 참조하세요.
서수 이론은 사토시에 화폐적 가치를 부여하여 골동품으로 수집하고 거래할 수 있도록 합니다.
서수는 사토시의 일련번호로, 채굴된 순서대로 할당되고 거래 전반에 걸쳐 보존됩니다.
문서 및 가이드는 문서를 참조하세요.
할당 및 전송 알고리즘에 대한 기술적 설명은 BIP를 참조하세요.
현재 우선순위가 높은 문제는 프로젝트 게시판을 참조하세요.
Discord 서버에 가입하여 동료 서수 퇴보자들과 채팅하세요.
Ordinals는 오픈 소스이며 커뮤니티에서 자금을 지원합니다. 현재 ord
의 주요 관리자는 raphjaph입니다. Raph의 ord
작업은 전적으로 기부금으로 이루어집니다. 가능하다면 기부를 고려해 보세요!
기부 주소는 bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3입니다.
이 주소는 raphjaph, erin, Rodarmor 및 ordinally가 보유한 키가 포함된 다중 서명 지갑 4개 중 2개입니다.
받은 비트코인은 ord
의 유지 관리 및 개발 자금과 ordinals.com의 호스팅 비용으로 사용됩니다.
기부해주셔서 감사합니다!
ord
개인 키 관리 및 거래 서명을 위해 Bitcoin Core를 사용합니다. 이는 ord
wallet 명령을 안전하게 사용하기 위해 이해해야 할 여러 가지 의미를 갖습니다.
비트코인 코어는 비문을 인식하지 못하며 sat 제어를 수행하지 않습니다. ord
지갑에서 bitcoin-cli
명령과 RPC 호출을 사용하면 비문이 손실될 수 있습니다.
ord wallet
명령은 --name
옵션에 의해 제공된 ord
지갑을 자동으로 로드합니다. 기본값은 'ord'입니다. ord wallet
명령을 실행한 후 ord
지갑이 로드될 수 있다는 점을 명심하세요.
ord
귀하의 비트코인 코어 지갑에 접근할 수 있기 때문에 상당한 양의 자금이 들어 있는 ord
과 함께 사용해서는 안 됩니다. 서수 지갑과 기본 지갑을 분리하여 보관하세요.
Alpha ord
지갑은 이전 버전의 ord
에서 생성된 지갑과 호환되지 않습니다. 마이그레이션하려면 기존 지갑에서 ord wallet send
사용하여 ord wallet receive
사용하여 새 지갑에서 생성된 주소로 sats와 비문을 보냅니다.
ord
Rust로 작성되었으며 소스에서 빌드할 수 있습니다. 사전 빌드된 바이너리는 릴리스 페이지에서 사용할 수 있습니다.
다음을 사용하여 명령줄에서 사전 빌드된 최신 바이너리를 설치할 수 있습니다.
curl --proto ' =https ' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
ord
가 설치되면 명령줄에서 ord --version
실행할 수 있습니다.
Linux에서 ord
소스에서 빌드할 때 libssl-dev
필요합니다.
Ubuntu를 포함한 Debian 기반 Linux 배포판:
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
일단 빌드되면 ord
바이너리는 ./target/release/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 블록의 파일 하단에서 찾을 수 있습니다. 기능을 추가하거나 수정하는 경우 해당 테스트도 추가하세요. 통합 테스트는 바이너리의 하위 명령을 실행하여 엔드투엔드 기능을 테스트하려고 합니다. 이는 테스트 디렉토리에서 찾을 수 있습니다. 퍼징이 많지는 않지만 퍼징을 수행하는 방법의 기본 구조는 퍼즈 디렉토리에서 찾을 수 있습니다.
테스트를 더 쉽게 실행할 수 있도록 설치하는 것이 좋습니다. 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) 접근 방식을 따르려고 노력합니다. 즉, 코드에 대한 가시성을 얻기 위한 방법으로 테스트를 사용한다는 의미입니다. 이러한 이유로 테스트는 빠르게 실행되어야 변경, 테스트 실행, 결과 확인 사이의 피드백 루프가 작아집니다. 이를 용이하게 하기 위해 우리는 모의 코어에서 모의 비트코인 코어 인스턴스를 생성했습니다.
ord
사토시 위치 색인을 구축하기 위해 -txindex
와 동기화된 bitcoind
노드가 필요합니다. ord
RPC를 통해 bitcoind
와 통신합니다.
추가 구성 없이 동일한 사용자가 bitcoind
로컬로 실행하는 경우 ord
bitcoind
의 datadir에서 .cookie
파일을 읽고 기본 RPC 포트를 사용하여 연결하여 자동으로 찾아야 합니다.
bitcoind
메인넷에 있지 않거나, 동일한 사용자에 의해 실행되지 않거나, 기본이 아닌 datadir 또는 기본이 아닌 포트가 있는 경우 ord
에 추가 플래그를 전달해야 합니다. 자세한 내용은 ord --help
참조하세요.
bitcoind
RPC 인증 ord
일반적으로 사용자 이름과 비밀번호가 필요한 bitcoind
에 대한 RPC 호출을 수행합니다.
기본적으로 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 역추적을 활성화하려면 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
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에서 풀 요청을 엽니다. 다른 변경된 파일은 풀 요청에서 생략되어야 합니다.