ord
ord
é um índice, explorador de blocos e carteira de linha de comando. É um software experimental sem garantia. Consulte LICENÇA para obter mais detalhes.
A teoria ordinal confere aos satoshis valor numismático, permitindo que sejam coletados e comercializados como curiosidades.
Os números ordinais são números de série para satoshis, atribuídos na ordem em que são extraídos e preservados nas transações.
Consulte a documentação para documentação e guias.
Consulte o BIP para obter uma descrição técnica do algoritmo de atribuição e transferência.
Consulte o quadro do projeto para questões atualmente priorizadas.
Junte-se ao servidor Discord para conversar com outros degenerados ordinais.
Ordinals é de código aberto e financiado pela comunidade. O atual principal mantenedor do ord
é raphjaph. O trabalho de Raph no ord
é inteiramente financiado por doações. Se você puder, considere doar!
O endereço de doação é bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3.
Este endereço é 2 de 4 carteiras multisig com chaves em poder de raphjaph, erin, rodarmor e ordinalmente.
O Bitcoin recebido irá para o financiamento da manutenção e desenvolvimento do ord
, bem como para os custos de hospedagem do ordinals.com.
Obrigado por doar!
ord
depende do Bitcoin Core para gerenciamento de chaves privadas e assinatura de transações. Isto tem uma série de implicações que você deve entender para usar os comandos da carteira ord
com segurança:
O Bitcoin Core não tem conhecimento de inscrições e não realiza controle de sat. O uso de comandos bitcoin-cli
e chamadas RPC com carteiras ord
pode levar à perda de inscrições.
Os comandos ord wallet
carregam automaticamente a carteira ord
fornecida pela opção --name
, cujo padrão é 'ord'. Lembre-se de que após executar um comando ord wallet
, uma carteira ord
pode ser carregada.
Como ord
tem acesso às suas carteiras Bitcoin Core, ord
não deve ser usado com carteiras que contenham uma quantia significativa de fundos. Mantenha as carteiras ordinais e cardinais segregadas.
As carteiras Alpha ord
não são compatíveis com carteiras criadas por versões anteriores do ord
. Para migrar, use ord wallet send
da carteira antiga para enviar sats e inscrições para endereços gerados pela nova carteira com ord wallet receive
.
ord
é escrito em Rust e pode ser compilado a partir do código-fonte. Binários pré-construídos estão disponíveis na página de lançamentos.
Você pode instalar o binário pré-construído mais recente a partir da linha de comando com:
curl --proto ' =https ' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
Depois que ord
estiver instalado, você poderá executar ord --version
na linha de comando.
No Linux, ord
requer libssl-dev
ao compilar a partir do código-fonte.
Em distribuições Linux derivadas do Debian, incluindo Ubuntu:
sudo apt-get install pkg-config libssl-dev build-essential
Em distribuições Linux derivadas do Red Hat:
yum install -y pkgconfig openssl-devel
yum groupinstall "Development Tools"
Você também precisará de Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Clone o repositório ord
:
git clone https://github.com/ordinals/ord.git
cd ord
Para construir uma versão específica de ord
, primeiro verifique essa versão:
git checkout <VERSION>
E finalmente para realmente construir ord
:
cargo build --release
Uma vez construído, o binário ord
pode ser encontrado em ./target/release/ord
.
ord
requer rustc
versão 1.79.0 ou posterior. Execute rustc --version
para garantir que você tenha esta versão. Execute rustup update
para obter a versão estável mais recente.
Uma imagem Docker pode ser construída com:
docker build -t ordinals/ord .
ord
está disponível no Homebrew:
brew install ord
Para construir um pacote .deb
:
cargo install cargo-deb
cargo deb
Se você deseja contribuir, há algumas coisas que é útil saber. Colocamos muita ênfase em testes adequados na base de código, com três grandes categorias de testes: unidade, integração e fuzz. Os testes de unidade geralmente podem ser encontrados na parte inferior de um arquivo em um bloco mod chamado tests
. Se você adicionar ou modificar uma função, adicione também um teste correspondente. Os testes de integração tentam testar a funcionalidade ponta a ponta executando um subcomando do binário. Eles podem ser encontrados no diretório de testes. Não temos muito fuzzing, mas a estrutura básica de como fazemos isso pode ser encontrada no diretório fuzz.
Recomendamos fortemente a instalação apenas para facilitar a execução dos testes. Para executar nosso conjunto de testes de CI, você faria:
just ci
Isso corresponde aos comandos:
cargo fmt -- --check
cargo test --all
cargo test --all -- --ignored
Dê uma olhada no justfile para ver algumas receitas (comandos) mais úteis. Aqui estão mais alguns bons:
just fmt
just fuzz
just doc
just watch ltest --all
Se os testes estiverem falhando ou travando, talvez seja necessário aumentar o número máximo de arquivos abertos executando ulimit -n 1024
no seu shell antes de executar os testes ou na configuração do shell.
Também tentamos seguir uma abordagem TDD (Test-Driven-Development), o que significa que usamos testes como forma de obter visibilidade do código. Os testes precisam ser executados rapidamente por esse motivo, para que o ciclo de feedback entre fazer uma alteração, executar o teste e ver o resultado seja pequeno. Para facilitar isso, criamos uma instância simulada do Bitcoin Core no mockcore
ord
requer um nó bitcoind
sincronizado com -txindex
para construir o índice de locais de satoshi. ord
se comunica com bitcoind
via RPC.
Se bitcoind
for executado localmente pelo mesmo usuário, sem configuração adicional, ord
deverá encontrá-lo automaticamente lendo o arquivo .cookie
do datadir do bitcoind
e conectando-se usando a porta RPC padrão.
Se bitcoind
não estiver na rede principal, não for executado pelo mesmo usuário, tiver um datadir não padrão ou uma porta não padrão, você precisará passar sinalizadores adicionais para ord
. Veja ord --help
para detalhes.
bitcoind
ord
faz chamadas RPC para bitcoind
, o que geralmente requer nome de usuário e senha.
Por padrão, ord
procura um nome de usuário e senha no arquivo cookie criado por bitcoind
.
O caminho do arquivo cookie pode ser configurado usando --cookie-file
:
ord --cookie-file /path/to/cookie/file server
Alternativamente, ord
pode ser fornecido com um nome de usuário e senha na linha de comando:
ord --bitcoin-rpc-username foo --bitcoin-rpc-password bar server
Usando variáveis de ambiente:
export ORD_BITCOIN_RPC_USERNAME=foo
export ORD_BITCOIN_RPC_PASSWORD=bar
ord server
Ou no arquivo de configuração:
bitcoin_rpc_username : foo
bitcoin_rpc_password : bar
ord
usa env_logger. Defina a variável de ambiente RUST_LOG
para ativar o registro. Por exemplo, execute o servidor e mostre mensagens de log de nível info
e superiores:
$ RUST_LOG=info cargo run server
Defina a variável de ambiente RUST_BACKTRACE
para ativar o backtrace de ferrugem completo. Por exemplo, execute o servidor e ative a depuração e o backtrace completo:
$ RUST_BACKTRACE=1 RUST_LOG=debug ord server
As mensagens de commit de liberação usam o seguinte modelo:
Release x.y.z
- Bump version: x.y.z → x.y.z
- Update changelog
- Update changelog contributor credits
- Update dependencies
Para traduzir os documentos usamos o auxiliar mdBook i18n.
Consulte o guia de uso do mdbook-i18n-helpers para obter ajuda.
Adicionar novas traduções é um tanto complicado, então sinta-se à vontade para iniciar a tradução e abrir uma solicitação pull, mesmo que sua tradução esteja incompleta.
Dê uma olhada neste commit para ver um exemplo de adição de uma nova tradução. Um mantenedor irá ajudá-lo a integrá-lo ao nosso sistema de construção.
Para iniciar uma nova tradução:
Instale mdbook
, mdbook-i18n-helpers
e mdbook-linkcheck
:
cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
Gere um novo arquivo pot
chamado messages.pot
:
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
mdbook build -d po
Execute msgmerge
em XX.po
onde XX
é o código ISO-639 de duas letras para o idioma para o qual você está traduzindo. Isso atualizará o arquivo po
com o texto da versão em inglês mais recente:
msgmerge --update po/XX.po po/messages.pot
As seções não traduzidas são marcadas com #, fuzzy
em XX.po
. Edite a string msgstr
com o texto traduzido.
Execute o comando mdbook
para reconstruir os documentos. Para chinês, cujo código ISO-639 de duas letras é 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
Se tudo parecer bem, confirme XX.po
e abra uma solicitação pull no GitHub. Outros arquivos alterados devem ser omitidos da solicitação pull.