ord
ord
es un índice, un explorador de bloques y una billetera de línea de comandos. Es un software experimental sin garantía. Consulte LICENCIA para obtener más detalles.
La teoría ordinal confiere a los satoshis un valor numismático, lo que permite coleccionarlos y comercializarlos como curiosidades.
Los números ordinales son números de serie de satoshis, asignados en el orden en que se extraen y se conservan en todas las transacciones.
Consulte los documentos para obtener documentación y guías.
Consulte el BIP para obtener una descripción técnica del algoritmo de asignación y transferencia.
Consulte la junta de proyecto para conocer los problemas prioritarios actualmente.
Únase al servidor de Discord para charlar con otros degenerados ordinales.
Ordinals es de código abierto y está financiado por la comunidad. El actual mantenedor principal de ord
es raphjaph. El trabajo de Raph en ord
se financia en su totalidad con donaciones. Si puedes, ¡considera donar!
La dirección de donación es bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3.
Esta dirección es 2 de 4 billeteras multifirma con claves en poder de raphjaph, erin, rodarmor y ordinally.
Los bitcoins recibidos se destinarán a financiar el mantenimiento y el desarrollo de ord
, así como a los costos de alojamiento de ordinals.com.
¡Gracias por donar!
ord
confía en Bitcoin Core para la gestión de claves privadas y la firma de transacciones. Esto tiene una serie de implicaciones que debes comprender para poder utilizar los comandos ord
wallet de forma segura:
Bitcoin Core no reconoce las inscripciones y no realiza control satelital. El uso de comandos bitcoin-cli
y llamadas RPC con billeteras ord
puede provocar la pérdida de inscripciones.
Los comandos ord wallet
cargan automáticamente la billetera ord
proporcionada por la opción --name
, que por defecto es 'ord'. Tenga en cuenta que después de ejecutar un comando ord wallet
, es posible que se cargue una billetera ord
.
Debido a que ord
tiene acceso a sus billeteras Bitcoin Core, ord
no debe usarse con billeteras que contengan una cantidad importante de fondos. Mantenga las billeteras ordinales y cardinales separadas.
Las carteras Alpha ord
no son compatibles con carteras creadas con versiones anteriores de ord
. Para migrar, utilice ord wallet send
desde la billetera anterior para enviar sats e inscripciones a direcciones generadas por la nueva billetera con ord wallet receive
.
ord
está escrito en Rust y se puede compilar desde el código fuente. Los archivos binarios prediseñados están disponibles en la página de lanzamientos.
Puede instalar el último binario prediseñado desde la línea de comando con:
curl --proto ' =https ' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
Una vez instalado ord
, debería poder ejecutar ord --version
en la línea de comando.
En Linux, ord
requiere libssl-dev
cuando compila desde el código fuente.
En distribuciones de Linux derivadas de Debian, incluido Ubuntu:
sudo apt-get install pkg-config libssl-dev build-essential
En distribuciones de Linux derivadas de Red Hat:
yum install -y pkgconfig openssl-devel
yum groupinstall "Development Tools"
También necesitarás Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Clona el repositorio ord
:
git clone https://github.com/ordinals/ord.git
cd ord
Para crear una versión específica de ord
, primero consulte esa versión:
git checkout <VERSION>
Y finalmente para construir ord
:
cargo build --release
Una vez creado, el binario ord
se puede encontrar en ./target/release/ord
.
ord
requiere la versión 1.79.0 o posterior rustc
. Ejecute rustc --version
para asegurarse de tener esta versión. Ejecute rustup update
para obtener la última versión estable.
Se puede crear una imagen de Docker con:
docker build -t ordinals/ord .
ord
está disponible en Homebrew:
brew install ord
Para construir un paquete .deb
:
cargo install cargo-deb
cargo deb
Si desea contribuir, hay un par de cosas que es útil saber. Ponemos mucho énfasis en las pruebas adecuadas en el código base, con tres categorías amplias de pruebas: unitarias, de integración y fuzz. Las pruebas unitarias generalmente se pueden encontrar en la parte inferior de un archivo en un bloque de modificación llamado tests
. Si agrega o modifica una función, agregue también la prueba correspondiente. Las pruebas de integración intentan probar la funcionalidad de un extremo a otro ejecutando un subcomando del binario. Estos se pueden encontrar en el directorio de pruebas. No tenemos mucha confusión, pero la estructura básica de cómo hacerlo se puede encontrar en el directorio fuzz.
Recomendamos encarecidamente la instalación solo para facilitar la ejecución de las pruebas. Para ejecutar nuestro conjunto de pruebas de CI, haría lo siguiente:
just ci
Esto corresponde a los comandos:
cargo fmt -- --check
cargo test --all
cargo test --all -- --ignored
Eche un vistazo al justfile para ver algunas recetas (comandos) más útiles. Aquí hay un par de buenos más:
just fmt
just fuzz
just doc
just watch ltest --all
Si las pruebas fallan o se bloquean, es posible que deba aumentar la cantidad máxima de archivos abiertos ejecutando ulimit -n 1024
en su shell antes de ejecutar las pruebas, o en su configuración de shell.
También intentamos seguir un enfoque TDD (desarrollo basado en pruebas), lo que significa que utilizamos pruebas como una forma de obtener visibilidad del código. Por ese motivo, las pruebas deben ejecutarse rápidamente, de modo que el ciclo de retroalimentación entre realizar un cambio, ejecutar la prueba y ver el resultado sea pequeño. Para facilitar esto, creamos una instancia simulada de Bitcoin Core en mockcore.
ord
requiere un nodo bitcoind
sincronizado con -txindex
para crear el índice de ubicaciones de satoshi. ord
se comunica con bitcoind
a través de RPC.
Si el mismo usuario ejecuta bitcoind
localmente, sin configuración adicional, ord
debería encontrarlo automáticamente leyendo el archivo .cookie
del directorio de datos de bitcoind
y conectándose usando el puerto RPC predeterminado.
Si bitcoind
no está en la red principal, no lo ejecuta el mismo usuario, tiene un directorio de datos no predeterminado o un puerto no predeterminado, deberá pasar indicadores adicionales a ord
. Consulte ord --help
para obtener más detalles.
bitcoind
ord
realiza llamadas RPC a bitcoind
, que generalmente requieren un nombre de usuario y contraseña.
De forma predeterminada, ord
busca un nombre de usuario y una contraseña en el archivo cookie creado por bitcoind
.
La ruta del archivo de cookies se puede configurar usando --cookie-file
:
ord --cookie-file /path/to/cookie/file server
Alternativamente, ord
se le puede proporcionar un nombre de usuario y contraseña en la línea de comando:
ord --bitcoin-rpc-username foo --bitcoin-rpc-password bar server
Usando variables de entorno:
export ORD_BITCOIN_RPC_USERNAME=foo
export ORD_BITCOIN_RPC_PASSWORD=bar
ord server
O en el archivo de configuración:
bitcoin_rpc_username : foo
bitcoin_rpc_password : bar
ord
usa env_logger. Configure la variable de entorno RUST_LOG
para activar el registro. Por ejemplo, ejecute el servidor y muestre mensajes de registro de nivel info
y superiores:
$ RUST_LOG=info cargo run server
Configure la variable de entorno RUST_BACKTRACE
para activar el rastreo de óxido completo. Por ejemplo, ejecute el servidor y active la depuración y el rastreo completo:
$ RUST_BACKTRACE=1 RUST_LOG=debug ord server
Los mensajes de confirmación de liberación utilizan la siguiente plantilla:
Release x.y.z
- Bump version: x.y.z → x.y.z
- Update changelog
- Update changelog contributor credits
- Update dependencies
Para traducir los documentos utilizamos el asistente mdBook i18n.
Consulte la guía de uso de mdbook-i18n-helpers para obtener ayuda.
Agregar una nueva traducción es algo complicado, así que siéntete libre de comenzar la traducción y abrir una solicitud de extracción, incluso si tu traducción está incompleta.
Eche un vistazo a esta confirmación para ver un ejemplo de cómo agregar una nueva traducción. Un mantenedor lo ayudará a integrarlo en nuestro sistema de compilación.
Para iniciar una nueva traducción:
Instale mdbook
, mdbook-i18n-helpers
y mdbook-linkcheck
:
cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
Genere un nuevo archivo pot
llamado messages.pot
:
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
mdbook build -d po
Ejecute msgmerge
en XX.po
, donde XX
es el código ISO-639 de dos letras para el idioma al que está traduciendo. Esto actualizará el archivo po
con el texto de la versión en inglés más reciente:
msgmerge --update po/XX.po po/messages.pot
Las secciones no traducidas están marcadas con #, fuzzy
en XX.po
Edite la cadena msgstr
con el texto traducido.
Ejecute el comando mdbook
para reconstruir los documentos. Para los chinos, cuyo código ISO-639 de dos letras es 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
Si todo se ve bien, confirme XX.po
y abra una solicitud de extracción en GitHub. Otros archivos modificados deben omitirse de la solicitud de extracción.