Inscription #70486301#70,486,301pngInscription #70486292#70,486,292pngInscription #70486251#70,486,251pngInscription #70468946#70,468,946png#69,744,673text#67,023,802textInscription #65831859#65,831,859pngmsgstr "Senden Sie die inscription, indem Sie Folgendes ausführen:" #: src\guides/inscriptions.md:207 msgid "" "```\n" "ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>\n" "```" msgstr "" "```\n" "ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>\n" "```" #: src\guides/inscriptions.md:211 src\guides/inscriptions.md:239 msgid "See the pending transaction with:" msgstr "Sehen Sie sich die ausstehende Transaktion an mit:" #: src\guides/inscriptions.md:217 msgid "" "Once the send transaction confirms, the recipient can confirm receipt by " "running:" msgstr "" "Sobald die Sendetransaktion bestätigt ist, kann der Empfänger den Empfang " "bestätigen, indem er Folgendes ausführt:" #: src\guides/inscriptions.md:224 msgid "Receiving Inscriptions" msgstr "Empfang von Inscriptions" #: src\guides/inscriptions.md:227 msgid "Generate a new receive address using:" msgstr "Erzeugen Sie eine neue Empfangsadresse mit:" #: src\guides/inscriptions.md:233 msgid "The sender can transfer the inscription to your address using:" #45,026,744textmsgstr "تم تصميم نظرية أوردينال من الألف إلى الياء digital artifacts، بينما يكمن استخدام RGB وTaro الرئيسي في الرموز المتجانسة، لذا فإن تجربة المستخدم للنقوش من المحتمل أن تكون أبسط وأكثر اتقانًا من تجربة المستخدم لرموز RGB وTaro NFT." #: src\faq.md:222 msgid "RGB and Taro both store content off-chain, which requires additional infrastructure, and which may be lost. By contrast, inscription content is stored on-chain, and cannot be lost." msgstr "ال RGB وTaro يخزنان كلاهما المحتوى خارج الشبكة الرئيسية، مما يتطلب بنية تحتية إضافية، والتي قد تفقد. على العكس من ذلك، يتم تخزين محتوى الإنسكريبشين داخل الشبكة الرئيسية ولا يمكن فقده." #: src\faq.md:226 msgid "Ordinal theory, RGB, and Taro are all very early, so this is speculation, but ordinal theory's focus may give it the edge in terms of features for digital artifacts, including a better content model, and features like globally unique symbols." msgstr "نظرية أوردينال، RGB، وTaro كلها في مراحل مبكرة جدًا، لذلك هذه مجرد تكهنات، ولكن تركيز نظرية أوردينال قد يمنحها ميزة فيما يتعلق بالميزات المخصصة للأشياء الرقمية، بما في ذلك نموذج المحتوى الأفضل، وميزات مثل الرموز الفريدة عالميًا." #45,026,737text"الأساسية، وتتم ترتيبها بناءً على ترتيب معاملاتها المقابلة في الكتلة. قد يبدو معامل العملة الأساسية في البلوك كما يلي:" #: src\faq.md:87 msgid "" "```\n" "[SUBSIDY] [e f] → [SUBSIDY e f]\n" "```" msgstr "" #: src\faq.md:89 msgid "Where can I find the nitty-gritty details?" msgstr "أين يمكنني العثور على تفاصيل البنية الدقيقة؟" #: src\faq.md:92 msgid "[The BIP!](https://github.com/ordinals/ord/blob/master/bip.mediawiki)" msgstr "" #: src\faq.md:94 msgid "Why are sat inscriptions called \"digital artifacts\" instead of \"NFTs\"?" msgstr "لماذا يُطلق على سات إنسكريبشين ديجاتل ارتيفاكت \"digital artifact\" بدلاً من \"الرموز غير القابلة للتماثل\" \"NFTs\"؟" #: src\faq.md:97 msgid "An inscription is an NFT, but the term \"digital artifact\" is used instead, because it's simple, suggestive, and familiar." msgstr "الرسوم الرقمية digital artifact هي في الأساس NFTs، ولكن يتم استخدام مصطلح \"الآثار الرقمية\" بدلاً من ذلك؛ لأنه أكثر بساطة وتلميحيًا وعامًا." #: src\faq.md:100 msgid "The phrase \"digital artifact\" is highly suggestive, even to someone who has never heard the term before. In comparison, NFT is an acronym, and doesn't provide any indication of what it means if you haven't heard the term before." #45,026,735text### Fixed - Respect locked coins (#2618) - Set `Cache-Control: no-store` header on 404 responses (#2637) - Fix statistics table and increment schema version (#2624) - Fix broken link in README (#2621) - Speed up indexing of re-inscriptions (#2608) - Fix docs rendering (#2612) - Update docs with new position of --enable-json-api (#2601) - Move `--enable-json-api` flag to server options (#2599) - Make server_runs_with_rpc_user_and_pass_as_env_vars test less flaky (#2580) ### Runes - Implement open etchings (#2548) - Add more info to /rune page and link to rune from /tx (#2528) - Display inscription on /rune (#2542) - Add rune numbers (#2557) - Ignore non push opcodes in runestones (#2553) - Improve rune minimum at height (#2546) [0.10.0](https://github.com/ordinals/ord/releases/tag/0.10.0) - 2023-10-23 -------------------------------------------------------------------------- ### Added - Batch inscriptions (#2504) - Add teleburn command to generate Ethereum teleburn addresses (#1680) - Add Korean version of handbook (#2560)#45,026,734textmsgstr "" "Starten Sie es und warten Sie, bis es zum aktuellen Blockspitze " "aufgeschlossen hat. An diesem Punkt sollte der folgende Befehl die aktuelle " "Blockhöhe ausgeben:" #: src\guides/sat-hunting.md:37 msgid "" "```sh\n" "bitcoin-cli getblockcount\n" "```" msgstr "" "```sh\n" "bitcoin-cli getblockcount\n" "```" #: src\guides/sat-hunting.md:41 msgid "Second, you'll need a synced `ord` index." msgstr "Zweitens benötigen Sie einen synchronisierten `ord` Index." #: src\guides/sat-hunting.md:43 msgid "Get a copy of `ord` from [the repo](https://github.com/ordinals/ord/)." msgstr "" "Holen Sie sich eine Kopie von `ord` von [the repo](https://github.com/" "ordinals/ord/)." #: src\guides/sat-hunting.md:45 msgid "" "Run `RUST_LOG=info ord index`. It should connect to your bitcoin core node " "and start indexing." msgstr "" "Führen Sie `RUST_LOG=info ord index` aus. Es sollte eine Verbindung zu Ihrem " "Bitcoin-Core-Knoten herstellen und mit der Indexierung beginnen." #: src\guides/sat-hunting.md:48 msgid "Wait for it to finish indexing." #45,026,697text- Add links to homepage (#335) - Styling (#333) - Remove fluff from BIP (#336) - Remove old comment from bitcoind.service (#334) - Add viewport meta tag (#332) - Add rarity colors (#330) - Don't let ordinals become telephone numbers (#331) - Add next and prev links to /ordinal (#329) - Fix broken link (#328) - Add header to /range (#325) - Fix off by one bug in index::blocks (#326) - Add header to /output (#324) - Limit blocks (#320) - Add header to /tx (#322) - Add header to /block/HASH (#321) - Convert / to boilerplate template (#317) - Return BlockHash from Index::all (#319) - Don't warn about installing bitcoind in deploy/setup (#318) - Improvements (#298) - Update rust toolchain when deploying (#311) - Fix forbidden word check (#313) - Don't run integration tests on MacOS CI (#316) - Disable redb checksums (#315) - Pay a fixed fee when sending transactions (#314) - Refactor duplicate blockchain code in purse (#312) - Add `ord wallet send` (#305) - Add wallet balance subcommand (#271) - Add wallet utxos subcommand (#259)#45,026,691text"auszuführen, um ein brandneues Wallet zu erstellen, Ihr vorhandenes Wallet " "mit `ord wallet restore \"BIP39 SEED PHRASE\"` importieren und dabei die " "Seed-Phrase verwenden, die Sie mit Sparrow Wallet generiert haben." #: src\guides/collecting/sparrow-wallet.md:85 msgid "" "There is currently a [bug](https://github.com/ordinals/ord/issues/1589) " "which causes an imported wallet to not be automatically rescanned against " "the blockchain. To work around this you will need to manually trigger a " "rescan using the bitcoin core cli: `bitcoin-cli -rpcwallet=ord " "rescanblockchain 767430`" msgstr "" "Derzeit gibt es einen [Fehler](https://github.com/ordinals/ord/issues/1589), " "der dazu führt, dass eine importierte Wallet nicht automatisch erneut anhand " "der Blockchain gescannt wird. Um dies zu umgehen, müssen Sie manuell einen " "erneuten Scan mit der Bitcoin-Core-CLI auslösen: `bitcoin-cli -rpcwallet=ord " "rescanblockchain 767430`" #: src\guides/collecting/sparrow-wallet.md:88 msgid "" "You can then check your wallet's inscriptions using `ord wallet inscriptions`" #45,026,685text #: src\faq.md:153 msgid "Inscriptions, on the other hand, depend on the Bitcoin blockchain, which is relatively simple and conservative, and which introduces changes via backwards-compatible soft forks." msgstr "على الجانب الآخر، تعتمد الإنسكريبشين على شبكه البيتكوين، والتي تعتبر بسيطة ومحافظة، والتي تدخل التغييرات من خلال تفرعات ناعمة متوافقة مع الإصدارات السابقة." #: src\faq.md:157 msgid "_Inscriptions are more secure._" msgstr "_الإنسكريبشين أكثر أمان_" #: src\faq.md:159 msgid "" "Inscriptions inherit Bitcoin's transaction model, which allow a user to see exactly which inscriptions are being transferred by a transaction before they sign it. Inscriptions can be offered for sale using partially signed transactions, which don't require allowing a " "third party, such as an exchange or marketplace, to transfer them on the user's behalf." msgstr "الإنسكريبشين ترث نموذج المعاملات الخاص بيتكوين، الذي يتيح للمستخدم رؤية الإنسكريبشين التي يتم نقلها بالمعاملة قبل أن يوقعوها. يمكن عرضها للبيع باستخدام معاملات موقعة جزئيًا، التي لا تتطلب من المستخدم السماح لجهة ثالثة، مثل البورصة أو سوق، بنقلها نيابة عن المستخدم." #45,026,671textmsgid "" "This UTXO (Inscription) is now un-spendable within the Sparrow Wallet until " "you unfreeze it." msgstr "" "Dieses UTXO (Inscription) kann jetzt nicht mehr in der Sparrow-Wallet " "ausgegeben werden, bis Sie es entsperren." #: src\guides/collecting/sparrow-wallet.md:79 msgid "Importing into `ord` wallet" msgstr "Importieren in die `ord` wallet" #: src\guides/collecting/sparrow-wallet.md:81 msgid "" "For details on setting up Bitcoin Core and the `ord` wallet check out the " "[Inscriptions Guide](../inscriptions.md)" msgstr "" "Einzelheiten zum Einrichten von Bitcoin Core und der `ord` Wallet finden Sie " "im [Inscriptions Guide](../inscriptions.md)" #: src\guides/collecting/sparrow-wallet.md:83 msgid "" "When setting up `ord`, instead of running `ord wallet create` to create a " "brand-new wallet, you can import your existing wallet using `ord wallet " "restore \"BIP39 SEED PHRASE\"` using the seed phrase you generated with " "Sparrow Wallet." msgstr "" "Wenn Sie `ord` einrichten, können Sie, anstatt `ord wallet create` " #45,026,666textconsidered to have an implicit input equal in size to the subsidy, followed by an input for every fee-paying transaction in the block, in the order that those transactions appear in the block. The implicit subsidy input carries the block's newly created sats. The implicit fee inputs carry the sats that were paid as fees in the block's transactions. Underpaying the subsidy does not change the ordinal numbers of sats mined in subsequent blocks. Ordinals depend only on how many sats could have been mined, not how many actually were. === Specification === Sats are numbered and transferred with the following algorithm: <pre> # subsidy of block at given height def subsidy(height): return 50 * 100_000_000 >> height // 210_000 # first ordinal of subsidy of block at given height def first_ordinal(height): start = 0 for height in range(height): start += subsidy(height) return start # assign ordinals in given block def assign_ordinals(block): first = first_ordinal(block.height) last = first + subsidy(block.height)#45,026,651text"ordinals/ord) entwickelt wird. Das Projekt umfasst ein BIP, das das " "Ordnungsschema beschreibt, einen Index, der mit einem Bitcoin Core-Knoten " "kommuniziert, um den Standort aller Satoshis zu verfolgen, eine Brieftasche, " "die das Erstellen von Transaktionen mit Kenntnis der Ordnung ermöglicht, " "einen Block-Explorer für die interaktive Erkundung der Blockchain, " "Funktionen zum Einschreiben von Satoshis mit digitalen Artefakten und dieses " "Handbuch." #: src\overview.md:52 msgid "Rarity" msgstr "Seltenheit" #: src\overview.md:55 msgid "" "Humans are collectors, and since satoshis can now be tracked and " "transferred, people will naturally want to collect them. Ordinal theorists " "can decide for themselves which sats are rare and desirable, but there are " "some hints…" msgstr "" "Menschen sind Sammler, und da Satoshis jetzt verfolgt und übertragen werden " "können, werden Menschen natürlich wollen, sie zu sammeln. Ordinaltheoretiker " "können selbst entscheiden, welche Sats selten und begehrenswert sind, aber " #45,026,645textmsgstr "لنبدأ هذا القسم بالقول: أهم شيء تقوم به شبكة بيتكوين هو اللامركزية للأموال. جميع الاستخدامات الأخرى هي ثانوية، بما في ذلك نظرية أوردينال. يفهم مطورو نظرية أوردينال ويقرون بذلك، ويعتقدون أن نظرية أوردينال تساعد، على الأقل بشكل طفيف، في مهمة بيتكوين الرئيسية." #: src\faq.md:295 msgid "" "Unlike many other things in the altcoin space, digital artifacts have merit. There are, of course, a great deal of NFTs that are ugly, stupid, and fraudulent. However, there are many that are fantastically creative, and creating and collecting art has been a part of the " "human story since its inception, and predates even trade and money, which are also ancient technologies." msgstr "" "على عكس العديد من الأشياء في مجال العملات البديلة، الآثار الرقمية (digital artifacts) لديها جدارة. هناك بالطبع الكثير من NFTs التي هي قبيحة وغبية واحتيالية. ومع ذلك، هناك العديد من الأعمال الإبداعية بشكل رائع، وإنشاء وجمع الفن كان جزءًا من قصة الإنسان منذ بدايتها، وتسبق " "حتى التجارة والأموال، التي هي أيضًا تقنيات قديمة." #: src\faq.md:302 #45,026,641text #: src\overview.md:199 msgid "Each satoshi has a name, consisting of the letters _A_ through _Z_, that get shorter the further into the future the satoshi was mined. They could start short and get longer, but then all the good, short names would be trapped in the unspendable genesis block." msgstr "لكل ساتوشي اسم مكون من الحروف من \"A\" إلى \"Z\"، وهذه الأسماء تصبح أقصر كلما تقدمنا من التعدين في المستقبل. يمكن أن تبدأ الأسماء بشكل قصير وتصبح أطول، ولكن في هذه الحالة ستصبح جميع الأسماء الجيدة والقصيرة محصورة في البلوك الأول الذي لا يمكن الوصول اليه." #: src\overview.md:204 msgid "As an example, 1905530482684727°'s name is \"iaiufjszmoba\". The name of the last satoshi to be mined is \"a\". Every combination of 10 characters or less is out there, or will be out there, someday." msgstr "على سبيل المثال، اسم 1905530482684727° هو \"iaiufjszmoba\". واسم آخر ساتوشي سيتم تعدينه هو \"a\". كل تسلسل مكون من 10 أحرف أو أقل موجود، أو سيكون موجودًا يومًا ما." #: src\overview.md:208 msgid "Exotics" msgstr "نوادر" #: src\overview.md:211 #45,026,635text #: src\faq.md:73 msgid "" "```\n" "[2] [1] [3] → [4]\n" "```" msgstr "" #: src\faq.md:75 msgid "The satoshis " msgstr "" #: src\faq.md:75 msgid "e" msgstr "" #: src\faq.md:75 msgid " and " msgstr "" #: src\faq.md:75 msgid "f" msgstr "" #: src\faq.md:75 msgid " now have nowhere to go in the outputs:" msgstr "" #: src\faq.md:78 msgid "" "```\n" "[a b] [c] [d e f] → [a b c d]\n" "```" msgstr "" #: src\faq.md:80 msgid "" "So they go to the miner who mined the block as fees. [The BIP](https://github.com/ordinals/ord/blob/master/bip.mediawiki) has the details, but in short, fees paid by transactions are treated as extra inputs to the coinbase transaction, and are ordered how their " "corresponding transactions are ordered in the block. The coinbase transaction of the block might look like this:" msgstr "" "لذا سيذهبون إلى عائد العامل الذي قام بتعدين الكتلة كرسوم.[The BIP](https://github.com/ordinals/ord/blob/master/bip.mediawiki) المعيار المعني به هنا يمتلك التفاصيل، لكن بشكل موجز، يتم التعامل مع الرسوم التي يتم دفعها من خلال المعاملات على أنها مداخل إضافية لمعاملة العملة " #45,026,628textmsgid "Guides" msgstr "إرشادات" #: src\SUMMARY.md:11 msgid "Explorer" msgstr "المتصفح" #: src\SUMMARY.md:13 src\guides/sat-hunting.md:1 msgid "Sat Hunting" msgstr "جمع الساتوشي" #: src\SUMMARY.md:14 src\guides/collecting.md:1 msgid "Collecting" msgstr "التجميع" #: src\SUMMARY.md:15 src\guides/sat-hunting.md:239 msgid "Sparrow Wallet" msgstr "محفظة سباروو" #: src\SUMMARY.md:16 src\guides/testing.md:1 msgid "Testing" msgstr "التجارب" #: src\SUMMARY.md:17 src\guides/moderation.md:1 msgid "Moderation" msgstr "الإشراف" #: src\SUMMARY.md:18 src\guides/reindexing.md:1 msgid "Reindexing" msgstr "إعادة الفهرسة" #: src\SUMMARY.md:19 msgid "Bounties" msgstr "المكافآت" #: src\SUMMARY.md:20 msgid "Bounty 0: 100,000 sats Claimed!" msgstr "جائزة 0: 100,000 ساتوشي مكتملة!" #: src\SUMMARY.md:21 msgid "Bounty 1: 200,000 sats Claimed!" msgstr "جائزة 1: 200,000 ساتوشي مكتملة!" #: src\SUMMARY.md:22 msgid "Bounty 2: 300,000 sats Claimed!" msgstr "جائزة 2: 300,000 ساتوشي مكتملة!" #: src\SUMMARY.md:23 msgid "Bounty 3: 400,000 sats" #45,026,605textmsgstr "الفوائد على الشبكة فكرة جيدة نظريًا وليست عمليًا. لا يمكن تنفيذ دفع الفوائد على الشبكة دون قيود معقدة ومُعضِلة. يواجه نظام NFTs في إيثيريوم الآن ارتباكًا حول العوائد، ويأتي معه فيساق كل منصة إلى القاع ويزيل دعم الفوائد." #: src\faq.md:190 msgid "Inscriptions avoid this situation entirely by making no false promises of supporting royalties on-chain, thus avoiding the confusion, chaos, and negativity of the Ethereum NFT situation." msgstr "تجنب الإنسكريبشين هذا الوضع بالكامل من خلال عدم إصدار وعود كاذبة بدعم العوائد على السلسلة، وبالتالي تجنب الارتباك والفوضى والسلبية المرتبطة بالوضع الحالي لـ NFTs في إيثيريوم." #: src\faq.md:194 msgid "_Inscriptions unlock new markets._" msgstr "_الإنسكريبشين تفتح أسواقًا جديدة._" #: src\faq.md:196 msgid "" "Bitcoin's market capitalization and liquidity are greater than Ethereum's by a large margin. Much of this liquidity is not available to Ethereum NFTs, since many Bitcoiners prefer not to interact with the Ethereum ecosystem due to concerns related to simplicity, " #45,026,604textmsgstr "مجموعات صور الملف الشخصي التوليدية حيث يتم تدوين الإكسسوارات والسمات كصور فردية، أو ضمن أطلس للنسيج المشترك، ثم يتم دمجها، على طريقة التراص، في تركيبات فريدة في عدد من الإنسكريبشينس." #: src\inscriptions/recursion.md:22 msgid "A few other endpoints that inscriptions may access are the following:" msgstr "نقاط أخرى التي يمكن الإنسكريبشين الوصول إليها هي كما يلي:" #: src\inscriptions/recursion.md:24 msgid "`/blockheight`: latest block height." msgstr "" #: src\inscriptions/recursion.md:25 msgid "`/blockhash`: latest block hash." msgstr "" #: src\inscriptions/recursion.md:26 msgid "`/blockhash/<HEIGHT>`: block hash at given block height." msgstr "" #: src\inscriptions/recursion.md:27 msgid "`/blocktime`: UNIX time stamp of latest block." msgstr "" #: src\faq.md:1 msgid "Ordinal Theory FAQ" msgstr "الأسئلة الشائعة لنظرية أوردينال" #: src\faq.md:4 msgid "What is ordinal theory?" msgstr "ما هي نظرية أوردينال؟" #: src\faq.md:7 msgid "Ordinal theory is a protocol for assigning serial numbers to satoshis, the smallest subdivision of a bitcoin, and tracking those satoshis as they are spent by transactions." #45,026,573textmsgstr "" "_Name_: [`satoshi`](https://ordinals.com/sat/satoshi). Eine Codierung der " "Ordnungszahl unter Verwendung der Zeichen `a` bis `z`." #: src\overview.md:42 msgid "" "Arbitrary assets, such as NFTs, security tokens, accounts, or stablecoins " "can be attached to satoshis using ordinal numbers as stable identifiers." msgstr "" "Beliebige Vermögenswerte wie NFTs, Sicherheitstoken, Konten oder Stablecoins " "können mit Hilfe von Ordnungszahlen als stabile Identifikatoren an Satoshis " "angehängt werden." #: src\overview.md:45 msgid "" "Ordinals is an open-source project, developed [on GitHub](https://github.com/" "ordinals/ord). The project consists of a BIP describing the ordinal scheme, " "an index that communicates with a Bitcoin Core node to track the location of " "all satoshis, a wallet that allows making ordinal-aware transactions, a " "block explorer for interactive exploration of the blockchain, functionality " "for inscribing satoshis with digital artifacts, and this manual." msgstr "" "Ordinals ist ein Open-Source-Projekt, das [auf GitHub](https://github.com/" #45,026,572textmsgstr "نظرية أوردينال هي بروتوكول لتخصيص أرقام تسلسلية للساتوشي، وهي أصغر وحدة فرعية من البيتكوين، ويمكن تتبع تلك الساتوشي أثناء استعمالها من خلال المعاملات." #: src\faq.md:11 msgid "These serial numbers are large numbers, like this 804766073970493. Every satoshi, which is ¹⁄₁₀₀₀₀₀₀₀₀ of a bitcoin, has an ordinal number." msgstr "تلك الأرقام التسلسلية هي أرقام كبيرة، مثل هذا الرقم 804766073970493. كل ساتوشي، والذي هو واحد من أصل مليون من بيتكوين واحد، لديه رقم ترتيبي." #: src\faq.md:14 msgid "Does ordinal theory require a side chain, a separate token, or changes to Bitcoin?" msgstr "هل تتطلب نظرية أوردينال شبكه فرعية (Sidechain) أو عمله منفصله (Token)، أو تغييرات في البيتكوين؟" #: src\faq.md:17 msgid "Nope! Ordinal theory works right now, without a side chain, and the only token needed is bitcoin itself." msgstr "لا! نظرية أوردينال تعمل حاليًا دون الحاجة إلى شبكه فرعية أو عمله منفصله، والعملة الوحيدة المطلوبة هي بيتكوين نفسه." #: src\faq.md:20 msgid "What is ordinal theory good for?" msgstr "ما فائدة نظرية أوردينال؟" #45,026,528text"```" msgstr "" "```\n" "1°1′1″0‴\n" "│ │ │ ╰─ Erster Sat in seinem Block\n" "│ │ ╰─── Nicht der erste Block in diesem Schwierigkeitsanpassungszeitraum\n" "│ ╰───── Nicht der erste Block in diesem Halbierungszyklus\n" "╰─────── Erster Zyklus\n" "```" #: src\overview.md:121 msgid "This satoshi is rare:" msgstr "Dieser Satoshi ist selten:" #: src\overview.md:123 msgid "" "```\n" "1°1′0″0‴\n" "│ │ │ ╰─ First sat in block\n" "│ │ ╰─── First block in difficulty adjustment period\n" "│ ╰───── Not the first block in halving epoch\n" "╰─────── Second cycle\n" "```" msgstr "" "```\n" "1°1′0″1‴\n" "│ │ ╰─ Erster Sat in seinem Schwierigkeitsanpassungszeitraum\n" "│ ╰─── Nicht der erste Block in diesem Halbierungszyklus\n" "╰───── Erster Zyklus\n" "```" #: src\overview.md:131 msgid "This satoshi is epic:" msgstr "Dieser Satoshi ist episch:" #: src\overview.md:133 msgid "" "```\n" "1°0′1″0‴\n" "│ │ │ ╰─ First sat in block\n" "│ │ ╰─── Not first block in difficulty adjustment period\n" "│ ╰───── First block in halving epoch\n" #45,026,527textTeleburning =========== Teleburn addresses can be used to burn assets on other blockchains, leaving behind in the smoking rubble a sort of forwarding address pointing to an inscription on Bitcoin. Teleburning an asset means something like, "I'm out. Find me on Bitcoin." Teleburn addresses are derived from inscription IDs. They have no corresponding private key, so assets sent to a teleburn address are burned. Currently, only Ethereum teleburn addresses are suppported. Pull requests adding teleburn addresses for other chains are welcome. Ethereum -------- Ethereum teleburn addresses are derived by taking the first 20 bytes of the SHA-256 hash of the inscription ID, serialized as 36 bytes, with the first 32 bytes containing the transaction ID, and the last four bytes containing big-endian inscription index, and interpreting it as an Ethereum address. Example ------- The ENS domain name [rodarmor.eth](https://app.ens.domains/rodarmor.eth), was teleburned to [inscription zero](https://ordinals.com/inscription/6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0). #44,984,931textchecksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ "bitcoin_hashes 0.12.0", "rand 0.8.5", "secp256k1-sys", "serde", ] [[package]] name = "secp256k1-sys" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" dependencies = [ "cc", ] [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" [[package]] name = "serde" version = "1.0.177" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63ba2516aa6bf82e0b19ca8b50019d52df58455d3cf9bdaf6315225fdd0c560a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.177" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "401797fe7833d72109fedec6bfcbe67c0eed9b99772f26eb8afd261f0abc6fd3" dependencies = [ "proc-macro2", #44,983,027textuse { super::*, clap::builder::styling::{AnsiColor, Effects, Styles}, }; #[derive(Debug, Parser)] #[command( version, styles = Styles::styled() .header(AnsiColor::Green.on_default() | Effects::BOLD) .usage(AnsiColor::Green.on_default() | Effects::BOLD) .literal(AnsiColor::Blue.on_default() | Effects::BOLD) .placeholder(AnsiColor::Cyan.on_default())) ] pub(crate) struct Arguments { #[command(flatten)] pub(crate) options: Options, #[command(subcommand)] pub(crate) subcommand: Subcommand, } impl Arguments { pub(crate) fn run(self) -> SubcommandResult { self.subcommand.run(self.options) } } #44,983,008text }, ParsedEnvelope { payload: inscription("bar", [1; 100]), offset: 1, ..Default::default() } ] ); } #[test] fn inscribe_png() { assert_eq!( parse(&[envelope(&[b"ord", &[1], b"image/png", &[], &[1; 100]])]), vec![ParsedEnvelope { payload: inscription("image/png", [1; 100]), ..Default::default() }] ); } #[test] fn chunked_data_is_parsable() { let mut witness = Witness::new(); witness.push(&inscription("foo", [1; 1040]).append_reveal_script(script::Builder::new())); witness.push([]); assert_eq!( parse(&[witness]), vec![ParsedEnvelope { payload: inscription("foo", [1; 1040]), ..Default::default() }] ); } #[test] fn round_trip_with_no_fields() { let mut witness = Witness::new(); witness.push(Inscription::default().append_reveal_script(script::Builder::new())); witness.push([]); assert_eq!( parse(&[witness]), #44,983,004text } } #[derive(Serialize)] pub(crate) struct Info { blocks_indexed: u32, branch_pages: u64, fragmented_bytes: u64, index_file_size: u64, index_path: PathBuf, leaf_pages: u64, metadata_bytes: u64, outputs_traversed: u64, page_size: usize, sat_ranges: u64, stored_bytes: u64, tables: BTreeMap<String, TableInfo>, pub(crate) transactions: Vec<TransactionInfo>, tree_height: u32, utxos_indexed: u64, } #[derive(Serialize)] pub(crate) struct TableInfo { branch_pages: u64, fragmented_bytes: u64, leaf_pages: u64, metadata_bytes: u64, stored_bytes: u64, tree_height: u32, } #[derive(Serialize)] pub(crate) struct TransactionInfo { pub(crate) starting_block_count: u32, pub(crate) starting_timestamp: u128, } trait BitcoinCoreRpcResultExt<T> { fn into_option(self) -> Result<Option<T>>; } impl<T> BitcoinCoreRpcResultExt<T> for Result<T, bitcoincore_rpc::Error> { fn into_option(self) -> Result<Option<T>> { match self { Ok(ok) => Ok(Some(ok)), Err(bitcoincore_rpc::Error::JsonRpc(bitcoincore_rpc::jsonrpc::error::Error::Rpc( #44,982,999textuse { super::*, bitcoin::blockdata::{ opcodes, script::{self, Instruction, Instructions}, }, }; pub(crate) const PROTOCOL_ID: [u8; 3] = *b"ord"; pub(crate) const BODY_TAG: [u8; 0] = []; pub(crate) const CONTENT_TYPE_TAG: [u8; 1] = [1]; pub(crate) const POINTER_TAG: [u8; 1] = [2]; pub(crate) const PARENT_TAG: [u8; 1] = [3]; pub(crate) const METADATA_TAG: [u8; 1] = [5]; pub(crate) const METAPROTOCOL_TAG: [u8; 1] = [7]; pub(crate) const CONTENT_ENCODING_TAG: [u8; 1] = [9]; type Result<T> = std::result::Result<T, script::Error>; type RawEnvelope = Envelope<Vec<Vec<u8>>>; pub(crate) type ParsedEnvelope = Envelope<Inscription>; #[derive(Debug, Default, PartialEq, Clone)] pub(crate) struct Envelope<T> { pub(crate) payload: T, pub(crate) input: u32, pub(crate) offset: u32, pub(crate) pushnum: bool, } fn remove_field(fields: &mut BTreeMap<&[u8], Vec<&[u8]>>, field: &[u8]) -> Option<Vec<u8>> { let values = fields.get_mut(field)?; if values.is_empty() { None } else { let value = values.remove(0).to_vec(); #44,982,998text cargo +nightly fuzz run varint-decode -- -max_total_time=60 cargo +nightly fuzz run varint-encode -- -max_total_time=60 done decode txid: bitcoin-cli getrawtransaction {{txid}} | xxd -r -p - | cargo run decode open: open http://localhost doc: cargo doc --all --open prepare-release revision='master': #!/usr/bin/env bash set -euxo pipefail git checkout {{ revision }} git pull origin {{ revision }} echo >> CHANGELOG.md git log --pretty='format:- %s' >> CHANGELOG.md $EDITOR CHANGELOG.md $EDITOR Cargo.toml VERSION=`sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/\1/p' Cargo.toml | head -1` cargo check git checkout -b release-$VERSION git add -u git commit -m "Release $VERSION" git tag -a $VERSION -m "Release $VERSION" gh pr create --web publish-release revision='master': #!/usr/bin/env bash set -euxo pipefail rm -rf tmp/release git clone https://github.com/ordinals/ord.git tmp/release cd tmp/release git checkout {{ revision }} cargo publish cd ../.. #44,982,994text }; let txid = context.rpc_server.broadcast_tx(no_value_input); context.mine_blocks(1); assert_eq!( context.index.list(OutPoint::new(txid, 0)).unwrap().unwrap(), List::Unspent(Vec::new()) ); } #[test] fn list_spent_output() { let context = Context::builder().arg("--index-sats").build(); context.mine_blocks(1); context.rpc_server.broadcast_tx(TransactionTemplate { inputs: &[(1, 0, 0, Default::default())], fee: 0, ..Default::default() }); context.mine_blocks(1); let txid = context.rpc_server.tx(1, 0).txid(); assert_eq!( context.index.list(OutPoint::new(txid, 0)).unwrap().unwrap(), List::Spent, ); } #[test] fn list_unknown_output() { let context = Context::builder().arg("--index-sats").build(); assert_eq!( context .index .list( "0000000000000000000000000000000000000000000000000000000000000000:0" .parse() .unwrap() ) .unwrap(), #44,982,937text .iter()? .rev() .take(n) .flat_map(|result| { result.map(|(number, entry)| (number.value(), InscriptionEntry::load(entry.value()).id)) }) .collect(), ) } pub(crate) fn get_inscription_entry( &self, inscription_id: InscriptionId, ) -> Result<Option<InscriptionEntry>> { let rtx = self.database.begin_read()?; let Some(sequence_number) = rtx .open_table(INSCRIPTION_ID_TO_SEQUENCE_NUMBER)? .get(&inscription_id.store())? .map(|guard| guard.value()) else { return Ok(None); }; let entry = rtx .open_table(SEQUENCE_NUMBER_TO_INSCRIPTION_ENTRY)? .get(sequence_number)? .map(|value| InscriptionEntry::load(value.value())); Ok(entry) } #[cfg(test)] fn assert_inscription_location( &self, inscription_id: InscriptionId, satpoint: SatPoint, sat: Option<u64>, ) { let rtx = self.database.begin_read().unwrap(); let satpoint_to_sequence_number = rtx .open_multimap_table(SATPOINT_TO_SEQUENCE_NUMBER) #44,982,889text context.rpc_server.mine_blocks(1); let script = script::Builder::new() .push_opcode(opcodes::OP_FALSE) .push_opcode(opcodes::all::OP_IF) .push_slice(b"ord") .push_slice([1]) .push_slice(b"text/plain;charset=utf-8") .push_slice([]) .push_slice(b"foo") .push_opcode(opcodes::all::OP_ENDIF) .push_opcode(opcodes::OP_FALSE) .push_opcode(opcodes::all::OP_IF) .push_slice(b"ord") .push_slice([1]) .push_slice(b"text/plain;charset=utf-8") .push_slice([]) .push_slice(b"bar") .push_opcode(opcodes::all::OP_ENDIF) .push_opcode(opcodes::OP_FALSE) .push_opcode(opcodes::all::OP_IF) .push_slice(b"ord") .push_slice([1]) .push_slice(b"text/plain;charset=utf-8") .push_slice([]) .push_slice(b"qix") .push_opcode(opcodes::all::OP_ENDIF) .into_script(); let witness = Witness::from_slice(&[script.into_bytes(), Vec::new()]); #44,982,421text .get_inscription_entry(inscription_id) .unwrap() .unwrap() .inscription_number, -1 ); } } #[test] fn inscriptions_with_pushnum_opcodes_are_cursed() { for context in Context::configurations() { context.mine_blocks(1); let script = script::Builder::new() .push_opcode(opcodes::OP_FALSE) .push_opcode(opcodes::all::OP_IF) .push_slice(b"ord") .push_slice([]) .push_opcode(opcodes::all::OP_PUSHNUM_1) .push_opcode(opcodes::all::OP_ENDIF) .into_script(); let witness = Witness::from_slice(&[script.into_bytes(), Vec::new()]); let txid = context.rpc_server.broadcast_tx(TransactionTemplate { inputs: &[(1, 0, 0, witness)], ..Default::default() }); let inscription_id = InscriptionId { txid, index: 0 }; context.mine_blocks(1); assert_eq!( context .index .get_inscription_entry(inscription_id) .unwrap() #44,982,419textmetamorfosi 5165 fructosuria 5167 minifundios 5167 hereditaire 5168 allographic 5169 deffenbaugh 5170 imbecillity 5170 cardiorenal 5172 circumlunar 5172 mediascapes 5172 alabamensis 5173 dispensible 5173 incredibili 5173 lumbopelvic 5173 decolorizes 5174 dokumentakh 5175 nobilitatis 5175 krepinevich 5176 graphicraft 5177 myrsinaceae 5177 allongement 5178 exurbanites 5178 hellenising 5178 inadvisedly 5178 liberamente 5178 microfabric 5178 empirischer 5182 ecoregional 5183 demoralises 5186 fabrikation 5186 champaubert 5187 distorsions 5187 dyhrenfurth 5187 loomweights 5187 counterlife 5189 firesetters 5189 bulbocodium 5190 macedonicus 5190 delectables 5193 freemanship 5193 druillettes 5194 manikarnika 5194 beruflichen 5196 cabbagetown 5197 infornation 5198 kreisleiter 5199 burgfrieden 5200 hasselbring 5202 imprimeries 5203 fedecamaras 5205 intervenant 5205 invisibilis 5205 exocellular 5206 gentrifiers 5206 membranosus 5206 govermental 5207 mahanirvana 5208 nonstriking 5208 drawability 5210 gametogenic 5210 lanzillotti 5210 #44,979,270textartschwager 8412 erkenntniss 8412 catarrhines 8414 monochronic 8414 hypernuclei 8415 airsickness 8417 megatonnage 8417 aristodemos 8419 calamitatum 8420 conidiation 8420 longestaffe 8421 isoetharine 8424 noirmoutier 8425 concealable 8428 dismayingly 8429 executional 8430 gemeenschap 8431 hindusthani 8433 crescimbeni 8434 cummulative 8434 gitagovinda 8436 goldseekers 8436 chikungunya 8437 europeanize 8437 epsteinbarr 8440 courtwright 8443 gegenschein 8444 curettement 8445 nishinomiya 8447 dictionarie 8450 linendraper 8451 miniaturize 8461 biocentrism 8463 fortenberry 8463 nondogmatic 8463 gulbrandsen 8467 archegonial 8469 gillyflower 8469 lebensdauer 8470 defunctorum 8474 legierungen 8476 handpicking 8477 appignanesi 8478 mercedarian 8478 knuckleball 8479 canadianism 8480 evangelique 8483 kontinuitat 8483 bockhampton 8487 defensionem 8487 nonreacting 8489 disconfirms 8492 bartholomeo 8493 justinianic 8495 bundesstaat 8501 amodiaquine 8502 committally 8502 clarissimus 8503 forecastles 8503 exhaustions 8505 blastocoele 8506 #44,979,267textalcoholized 8236 egomaniacal 8236 menstruates 8239 bretteville 8241 mavrommatis 8242 magistretti 8244 deinonychus 8248 dermochelys 8252 lamberville 8252 mucicarmine 8254 indexically 8256 godlikeness 8258 langenstein 8260 litholapaxy 8262 herakleides 8265 amicability 8266 hagemeister 8267 novecientos 8267 carpocapsae 8271 demandingly 8272 cardiologia 8273 littlewoods 8273 macrogamete 8274 menggunakan 8274 lerchenfeld 8276 monotheisms 8276 newswriters 8278 nondecision 8279 coruscation 8280 epitomising 8280 fireproofed 8280 homebuilder 8281 gavrilovich 8284 leytonstone 8284 hairraising 8287 chancroidal 8290 getproperty 8290 kommunisten 8293 internments 8294 featherlike 8296 formicarius 8296 cameralists 8297 chemometric 8298 chrysologus 8299 edinborough 8299 consensuses 8302 apostatised 8303 narcotizing 8305 cogitatione 8306 barrenechea 8311 dianisidine 8311 maciejewski 8313 iconografia 8314 momentously 8314 mittheilung 8316 extraditing 8318 latifundium 8319 castlecomer 8320 ausgegangen 8321 gardencourt 8322 maiakovskii 8325 #44,979,264texteinheitlich 7791 candlemaker 7794 cornerville 7796 danilevskii 7799 glandularis 7801 nachweisbar 7801 nonstaining 7801 hydroxyacyl 7802 barceloneta 7805 cuauhtitlan 7805 cineritious 7806 apostolicum 7807 letterature 7807 fourteeners 7811 hawaiiensis 7811 consulaires 7812 menangkabau 7812 downingtown 7813 centropages 7814 bioadhesive 7815 nonsystemic 7816 assoziation 7817 conjonction 7821 mitternacht 7823 irgendeiner 7824 neoorthodox 7824 diaspididae 7825 chessington 7826 jacqueminot 7829 majakovskij 7829 neolithique 7829 nephrostome 7829 casanatense 7830 huejotzingo 7830 immortalite 7830 bruckheimer 7831 deceivingly 7833 interlachen 7833 ammonolysis 7836 incuriously 7836 lennoxville 7836 necrophilic 7836 minutissima 7840 greenmantle 7843 hypothecary 7844 corroborees 7845 gasdynamics 7847 colecciones 7849 nulliparity 7851 mirchandani 7854 archdologie 7855 meroblastic 7855 coptotermes 7860 interiorize 7861 denumerably 7865 mideighties 7865 geschriften 7868 leishmanial 7872 formulative 7873 concertinas 7874 dharamshala 7874 #44,979,260textgouvemement 8607 awestricken 8609 fiddleheads 8612 foretopsail 8613 carpogonial 8614 dactyloides 8617 macrocosmos 8618 necrobiotic 8618 antiboycott 8620 bonariensis 8621 hydropsyche 8621 complemento 8622 clickstream 8623 incrementum 8623 antiradical 8624 metabolisme 8624 labuschagne 8625 deisenhofer 8626 microsensor 8630 mutterrecht 8630 enzymologia 8631 chicaneries 8632 mastocytoma 8632 colouristic 8633 medicinales 8634 milutinovic 8635 hereditatis 8636 guardhouses 8640 irredundant 8641 desperandum 8642 hypergraphs 8652 chaenomeles 8657 amaranthine 8660 creatinuria 8660 groundsheet 8660 gonioscopic 8662 nonorthodox 8667 exactamente 8668 hyparrhenia 8671 multicounty 8671 confortable 8674 levitations 8674 antifoaming 8676 macrotermes 8677 burkesville 8682 christianam 8683 noninertial 8683 automatisme 8686 musselwhite 8686 crockenberg 8688 destressing 8689 encadrement 8690 graphischen 8691 banaskantha 8693 hipotecario 8693 nondrinking 8696 musicmaking 8698 kapuskasing 8701 masculinize 8701 myelinating 8702 bittencourt 8703 #44,979,258textlumbricidae 8147 nonregional 8148 krishnadeva 8149 arbitragers 8150 laurustinus 8151 hydroscopic 8152 maltophilia 8153 circularize 8154 cornhuskers 8154 empedoclean 8154 bouddhiques 8159 capreomycin 8160 initialling 8162 nervefibres 8162 exuberances 8165 dhanvantari 8169 dibenzyline 8170 intercounty 8170 carotinoids 8172 datenschutz 8173 cavosurface 8175 inviability 8175 cartwheeled 8178 concentered 8178 imployments 8178 jugendliche 8178 cresphontes 8179 behandeling 8181 demetriades 8183 melioristic 8183 amidopyrine 8185 haroutunian 8185 firewalking 8187 cossimbazar 8191 deselection 8191 doubletrack 8191 elastischen 8194 krippendorf 8196 geanticline 8197 follistatin 8206 gallimaufry 8207 ghostscript 8208 fettercairn 8210 mauvissiere 8211 frommigkeit 8212 excellentia 8215 boleslavsky 8216 gonadotroph 8216 metalsmiths 8217 carpospores 8219 gossypiella 8219 coeflicient 8220 aminophenyl 8222 catadromous 8228 islamically 8228 numismatica 8228 besteuerung 8231 literalizes 8231 bidonvilles 8232 coauthoring 8235 impresiones 8235 #44,979,241textmanicurists 8781 nitrobenzyl 8782 conditionem 8783 inveniuntur 8783 dassonville 8790 hasmonaeans 8791 manningtree 8792 maslennikov 8795 geschildert 8796 arromanches 8797 decisionism 8797 hypokinesis 8799 contribuent 8805 lienholders 8805 hydractinia 8806 necessarilv 8808 ausstattung 8811 flourisheth 8812 definitione 8813 comunitario 8815 intergrated 8819 musikverein 8820 hundredyear 8822 carbonising 8826 brevicornis 8827 foretopmast 8828 alejandrino 8831 cosmovision 8831 macdonnells 8831 multicampus 8832 niebelungen 8832 createdness 8843 homeotropic 8845 forgivingly 8852 firstsearch 8853 cystopteris 8854 continentes 8855 beantworten 8856 archimedian 8858 gormenghast 8860 compleating 8862 eboracensis 8867 conviennent 8868 inteligente 8868 lamarckians 8868 capriccioso 8871 eloquentiae 8876 burseraceae 8877 embraceable 8880 gliocladium 8880 krebsforsch 8880 lewandowsky 8880 extremeness 8882 hydrophilus 8882 collegiates 8885 allocutions 8886 countersuit 8887 craftswomen 8888 atrabilious 8891 attualmente 8892 barrelhouse 8893 #44,979,236textmint10,000.roup#38,869,500brc-20mint10,000.roup#38,869,498brc-20mint10,000.roup#38,869,497brc-20mint10,000.roup#38,869,494brc-20mint10,000.roup#38,869,493brc-20mint10,000.roup#38,869,492brc-20mint10,000.roup#38,869,490brc-20mint10,000.roup#38,869,489brc-20mint10,000.roup#38,869,488brc-20mint10,000.roup#38,869,487brc-20mint10,000.roup#38,869,485brc-20mint10,000.roup#38,869,483brc-20mint10,000.roup#38,869,482brc-20mint10,000.roup#38,869,480brc-20mint10,000.roup#38,869,478brc-20