פיתוח טוקני Runes על ביטקוין: ארכיטקטורה ויישום

יצירת טוקן משלך על ביטקוין עשויה להיראות מאתגרת בשל עומס ברשת וסיכונים לאובדן כספים. אנחנו מפתחים טוקני Runes מהרעיון ועד ההשקה, תוך שימוש בפרוטוקול נקי וקומפקטי שאינו מעמיס על הבלוקצ'יין. הצוות שלנו מספק את הפרויקט במפתח מלא—מארכיטקטורה וחריטה ועד הגדרת אינדקסר ותמיכה מתמשכת, תוך הבטחת אמינות ועמידה בתקנים.

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1336
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1034
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1294
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1032

פיתוח טוקני Runes (ביטקוין)

לפני Runes, היה בלבול: BRC-20 פעל על גבי Ordinals, ויצר inscription עבור כל העברה, וסתם את ה-mempool בעסקאות זבל. קייסי רודרמור, יוצר Ordinals, תכנן את Runes כפתרון נקי לטוקנים פונגיבילים על ביטקוין — ללא נתונים מיותרים, תוך שימוש בפרימיטיבים קיימים של ביטקוין. Runes פותרים את בעיית קנה המידה של טוקנים: כל עסקת BRC-20 מייצרת inscriptions לא רצויים, ומגדילה את גודל הבלוקצ'יין. Runes משתמשים ב-UTXO וב-OP_RETURN, מה שהופך אותם לקומפקטיים פי 10. במאמר זה, נצלול לארכיטקטורה, ל-etching, להעברה ולאינדוקס של Runes, יחד עם דוגמאות קוד אמיתיות. תלמדו כיצד להימנע ממלכודות נפוצות, כמו אובדן טוקנים עקב לוגיקת pointer, וכיצד להגדיר indexer כראוי. הניסיון שלנו: 5+ שנים בפיתוח בלוקצ'יין, 15+ פרויקטים על ביטקוין ו-EVM. אנו מבטיחים עמידה בפרוטוקול וללא הפסדים עקב לוגיקת pointer. צרו קשר לייעוץ — אנו מעריכים מורכבות ולוחות זמנים תוך יום אחד.

כיצד פועל פרוטוקול Runes?

Runes אינו דורש שינויים בקונצנזוס של ביטקוין. הפרוטוקול חי בתוך OP_RETURN — נתונים אינם מאוחסנים בקבוצת UTXO, כך שהבלוקצ'יין אינו מתנפח (בניגוד ל-BRC-20, השומר מצב ב-satoshis).

מושגי מפתח:

  • Runestone — הודעת הפרוטוקול בתוך OP_RETURN. מכיל etching, mint, העברה ו-edicts.
  • UTXO כנושא יתרה — יתרות Runes מאוחסנות לא במיפוי גלובלי (כמו ERC-20), אלא ב-UTXO ספציפיים. אם אתה מחזיק 1000 RUNE, יש לך UTXO עם יתרה מחוברת.
  • Rune ID — # Установка ord (официальный клиент) cargo install ord # Синхронизация с Bitcoin нодой (или через RPC к внешней) ord --bitcoin-rpc-url http://user:pass@localhost:8332 index # Создание wallet ord wallet create # Etching нового Rune ord wallet etch \ --rune "MYTOKEN•NAME" \ --divisibility 8 \ --symbol "M" \ --supply 21000000 \ --premine 21000000 \ --fee-rate 20 # Mint (если включён open mint) ord wallet mint \ --rune "MYTOKEN•NAME" \ --fee-rate 20 של עסקת ה-etching. לדוגמה, ל-Rune הראשון יש ID 840000:3.
  • Spacers — מפרידים ויזואליים בשם (נקודות), למשל, UNCOMMON•GOODS.

כיצד ליצור Rune (Etching)?

Etching הוא עסקה עם Runestone ב-OP_RETURN המצהירה על Rune חדש.

פרמטרי etching: חלוקה (0–38, מקביל ל-decimals ב-ERC-20), סמל (תו Unicode לתצוגה), premine (כמות טוקנים עבור ה-etcher מיד), תנאים (תנאים ל-mint פתוח, אם מותר) — כמות, cap, גובה, offset, turbo (דגל תאימות לגרסאות עתידיות).

מבנה הנתונים של Runestone מקודד באמצעות קידוד varint (LEB128) — ייצוג קומפקטי של מספר שלם באורך משתנה.

יישום מעשי באמצעות ord CLI

# Установка ord (официальный клиент)
cargo install ord

# Синхронизация с Bitcoin нодой (или через RPC к внешней)
ord --bitcoin-rpc-url http://user:pass@localhost:8332 index

# Создание wallet
ord wallet create

# Etching нового Rune
ord wallet etch \
  --rune "MYTOKEN•NAME" \
  --divisibility 8 \
  --symbol "M" \
  --supply 21000000 \
  --premine 21000000 \
  --fee-rate 20

# Mint (если включён open mint)
ord wallet mint \
  --rune "MYTOKEN•NAME" \
  --fee-rate 20

באמצעות ספרייה (JavaScript/TypeScript)

לאינטגרציה לתוך אפליקציה, השתמשו בחבילת runestone npm או עבדו ישירות עם bitcoinjs-lib:

import { Runestone, Etching, Terms, RuneId } from "runestone-lib";
import * as bitcoin from "bitcoinjs-lib";

function buildEtchingTransaction(
  utxo: UTXO,
  runeName: string,
  divisibility: number,
  supply: bigint,
  feeRate: number
): bitcoin.Transaction {
  const runestone = new Runestone({
    etching: new Etching({
      rune: Rune.fromString(runeName),
      divisibility,
      symbol: "T",
      premine: supply,
      turbo: true,
    }),
    edicts: [
      {
        id: new RuneId(0n, 0n), // 0:0 = самого себя при etching
        amount: supply,
        output: 1n, // output index для получения premine
      },
    ],
  });

  const psbt = new bitcoin.Psbt({ network: bitcoin.networks.bitcoin });

  // Input: funded UTXO для оплаты fee
  psbt.addInput({
    hash: utxo.txid,
    index: utxo.vout,
    witnessUtxo: {
      script: utxo.scriptPubKey,
      value: utxo.value,
    },
  });

  // Output 0: OP_RETURN с Runestone
  psbt.addOutput({
    script: bitcoin.script.compile([
      bitcoin.opcodes.OP_RETURN,
      Buffer.from("52554e45", "hex"), // RUNE magic bytes
      runestone.encipher(),
    ]),
    value: 0,
  });

  // Output 1: получатель premine (должен быть не dust)
  psbt.addOutput({
    address: recipientAddress,
    value: 546, // dust limit для P2WPKH
  });

  // Output 2: сдача
  psbt.addOutput({
    address: changeAddress,
    value: changeAmount,
  });

  return psbt;
}
פרטים טכניים של Runestone Runestone הוא פורמט בינארי שיכול להכיל etching, mint, העברה ו-edicts. שדה ה-etching מגדיר את המאפיינים של הטוקן החדש: שם (עד 26 תווים עם מפרידים), חלוקה (0-38), סמל (Unicode יחיד), premine, ותנאי mint פתוח. Edicts הם הוראות העברה, כל אחת מכילה Rune id, כמות ומספר פלט. עלות ה-etching ברשת הראשית היא כ-$2–5 לעסקה בעמלות הנוכחיות.

העברת Runes (Edicts)

העברת Runes היא עסקה עם Runestone המכיל edicts. כל edict מציין: איזה Rune, כמה, לאיזה פלט.

כלל פרוטוקול חשוב: אם יתרת Rune של UTXO קלט אינה מכוסה במלואה על ידי edicts, היתרה הנותרת עוברת אוטומטית לפלט הראשון שאינו OP_RETURN (pointer). ללא pointer מפורש, הפלט הראשון הוא ברירת המחדל. זה שונה מ-EVM, שבו כספים שלא נוצלו נשארים אצל השולח.

דוגמה: יש לך UTXO עם 1000 RUNE. עסקה עם edict: שלח 300 RUNE → פלט 2. אוטומטית: 700 RUNE → פלט 1 (pointer ברירת מחדל). אם פלט 1 הוא כתובת שריפה, אתה שורף בטעות 700 RUNE. זו הסיבה העיקרית לאובדן טוקנים — אי הבנה של לוגיקת pointer. בעת פיתוח ארנק Runes, עליך להגדיר במפורש את פלט ה-pointer לכתובת השינוי של המשתמש.

אינדוקס Runes: אפשרויות ופרקטיקה

ל-Runes אין API RPC סטנדרטי ב-Bitcoin Core — נדרש indexer נפרד. השוו אפשרויות:

Indexer סוג יתרונות חסרונות
ord באירוח עצמי שליטה מלאה, קוד פתוח דורש צומת ביטקוין + ~100 GB SSD
Hiro Ordinals API מתארח אין צורך בצומת, REST פשוט בתשלום, סיכון לחוסר זמינות
Unisat API מתארח תמיכה ב-Runes, תוכנית חינמית מגבלת קצב לעומסים גבוהים

לייצור, אנו משתמשים ב-indexer ord משלנו עם שכפול — המבטיח זמינות ומהירות. חיסכון של עד 40% בהשוואה לפתרונות מתארחים.

כיצד Runes שונה מ-BRC-20

מאפיין Runes BRC-20
מודל נתונים UTXO עם יתרה מחוברת Inscription עם מצב JSON
גודל עסקה ~100–200 בתים ~400–1000 בתים
דרישות צומת צומת ביטקוין מלא + ord צומת ביטקוין מלא + Ordinals
גמישות העברה/שריפה בלבד העברה/שריפה בלבד
בשלות פיתוח פעיל, הושק לאחרונה יציב אך עם באגים

מה כלול בפיתוח טוקני Runes שלנו

  • ניתוח טוקנומיקה ופרמטרי פרוטוקול
  • לוגיקת etching, mint והעברה
  • אינטגרציית ארנק (רשימת ארנקים תומכי Runes)
  • פיתוח API לאינדוקס (ord + נקודות קצה מותאמות)
  • ממשק משתמש ל-mint/העברה (אופציונלי)
  • בדיקות ב-testnet וב-mainnet
  • תיעוד והדרכת צוות
  • חודש אחד של תמיכה טכנית לאחר ההשקה

מגבלות Runes (מה לדעת מראש)

Runes אינם חוזים חכמים. אין העברות מותנות, staking או DEX ללא פתרון נפרד. כל הלוגיקה המוכרת מ-Solidity בלתי אפשרית על השרשרת. רק יצירה, העברה ושריפה זמינים.

עבור DeFi על גבי Runes, יש צורך בהתאמה מחוץ לשרשרת (ספר הזמנות מרכזי) או L2 נפרד עם אימות באמצעות Bitcoin SPV. השוואה עם ERC-20: טוקני EVM מנצחים בגמישות, אך Runes מספקים אבטחה וקהל ביטקוין מקורי.

לוח זמנים לפיתוח: etching וארנק בסיסי — 1–2 שבועות. אינטגרציה מלאה עם indexer ו-marketplace — 6–10 שבועות. התמחור נקבע באופן אישי לאחר בדיקת דרישות. קבלו ייעוץ לפרויקט שלכם — אנו מעריכים מורכבות ומציעים פתרון אופטימלי.

הניסיון שלנו: 5+ שנים בפיתוח בלוקצ'יין, 15+ פרויקטים על ביטקוין ו-EVM. אנו מבטיחים עמידה בפרוטוקול וללא הפסדים עקב לוגיקת pointer.