Rune
  • Languages
  • 概览
    • 文档摘要
    • 发行例子
    • 媒体工具
    • 风险警告
    • Rune Alpha 时期
    • 符文条款
    • guides
      • 比特币地址格式
      • 创建符文
      • Rune Alpha - Signet
      • Rune Alpha - Testnet
      • 浏览
      • 转账
    • marketplace
      • 上架符文
      • 取消上架 符文
      • ❓什么是 PSBTs 技术?
    • Ordinals-厨师
      • 🔢荷兰拍卖
      • 🏗️Bitcoin 建设者
      • Cook 质押
      • 分配
      • 💯💯积分活动
  • 🏂Overview
    • Table of contents
    • 🚧Issuance example
    • 🎨Media kit
    • 🤺Risk Warning
    • 🏹Rune Alpha Period
    • 🧗‍♀️Terms of service
    • 🛣️Roadmap
    • Guides
      • 🌀Bitcoin Address Formats
      • 🤹Create Rune
      • 👨‍🔬Rune Alpha - Signet
      • ⚗️Rune Alpha - Testnet
      • 🔎Scan
      • 🤼Transfer
    • Marketplace
      • 🏊‍♂️Listing Rune
      • ⛹️‍♂️Unlist Rune
      • ❓What is PSBTs ?
    • Ordinals-chef
      • 〽️Dutch Auction
      • 👩‍🍳Cook Staking
      • #️RuneAlpha Point
      • 📢Distribution
Powered by GitBook
On this page
  1. 概览

发行例子

Last updated 1 year ago

目标:发行$RUNE。总供应量21,000,000

计算协议消息中的第一个数据

协议消息中的第一个数据推送被解码为序列整数。这些整数被解释为(ID, OUTPUT, AMOUNT)元组序列\ 整数被编码为前缀可变数,其中可变数的前导数决定了其字节长度。有很多类型的前缀变体,这是比特币的

要发出21000000符文,我们使用这个元组 [0 , 1, 21000000].

为什么是 [0 , 1, 21000000] ?

function encodeBitcoinVarInt(value) {
  if (value < 0xfd) {
    return [value];
  } else if (value <= 0xffff) {
    return [0xfd, value & 0xff, (value >> 8) & 0xff];
  } else if (value <= 0xffffffff) {
    return [0xfe, value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, (value >> 24) & 0xff];
  } else {
    return [
      0xff,
      value & 0xff,
      (value >> 8) & 0xff,
      (value >> 16) & 0xff,
      (value >> 24) & 0xff,
      (value >> 32) & 0xff,
      (value >> 40) & 0xff,
      (value >> 48) & 0xff,
      (value >> 56) & 0xff,
    ];
  }
}

function encodeBitcoinVarIntTuple(tuple) {
  const encodedBytes = tuple.map(encodeBitcoinVarInt).flat();

  // Convert the bytes to a hexadecimal string
  const hexString = encodedBytes.map(byte => byte.toString(16).padStart(2, '0')).join('');

  return hexString;
}

这是元组的数据 [0, 1, 21000000] 在对 比特币风格的编码 解码后\

0 => 00
1 => 01
21000000 => fe406f4001

[0, 1, 21000000] => 0001fe406f4001

计算协议消息中的第一个数据

第二个数据推送被解码为两个整数, SYMBOL, DECIMALS

SYMBOL 是一个26进制编码的人类可读符号,类似于oridinals名称中使用的符号。唯一有效的字符是A到Z.

// Some code
const bb26 = require("base26");

const text = 'rune';

const formatOrdinalBase26 = (text) => {
 const result = (2099999997689999 + 1 - bb26.from(text));
 return result;
};

这是元组的数据 [RUNE, 18] 在对 比特币风格的编码 解码后\

RUNE => 2099999997359067 => ffdbf3de59dbf3de59
18 => 12

[RUNE, 18] => ffdbf3de59dbf3de5912

协议消息的最后结果

OP_RETURN 52 0001fe406f4001 ffdbf3de59dbf3de5912

oridinals名称是序数的编码。为了避免将短名字锁定在不可花费的创世区块coinbase奖励中,序数变得越来越短,序数变得越来越长。第一个要挖掘的卫星0的名称是nvtdijuwxlp,最后一个要挖掘的卫星2,099,999,997,689,999的名称是a。

base-26
风格