עדיין מסתמכים על ממשקי API ציבוריים לעסקאות ביטקוין? מגבלות קצב, חשיפת IP, נקודות כשל מרכזיות — אנחנו נתקלים בבעיות האלה בכל פרויקט עיבוד תשלומים. צומת Bitcoin Core מלא מעניק לכם עצמאות, פרטיות ושליטה מלאה. עם ניסיון של למעלה מ-5 שנים, פרסנו צמתים ליותר מ-50 פרויקטים — משירותי שמירה ועד פרוטוקולי DeFi.
למה צומת ביטקוין הוא הכרח ייצור
ללא צומת משלכם, אתם תלויים בממשקי API ציבוריים: הם יכולים לרדת מהאוויר, לשנות תמחור או להגביל בקשות. ממשקי API ציבוריים מציעים בממוצע כ-99% זמינות, בעוד שצומת מתארח עצמי על שרת אמין יכול להגיע ל-99.99% — פי 100 פחות זמן השבתה. צומת מספק: אימות עסקאות משלכם, היסטוריה מלאה באמצעות # Ubuntu 22.04 wget https://bitcoincore.org/bin/bitcoin-core-27.0/bitcoin-27.0-x86_64-linux-gnu.tar.gz # Всегда верифицируйте подпись! wget https://bitcoincore.org/bin/bitcoin-core-27.0/SHA256SUMS wget https://bitcoincore.org/bin/bitcoin-core-27.0/SHA256SUMS.asc gpg --recv-keys 152812300785C96444D3334D17565732E08E52E gpg --verify SHA256SUMS.asc SHA256SUMS sha256sum --check SHA256SUMS --ignore-missing tar xzf bitcoin-27.0-x86_64-linux-gnu.tar.gz sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-27.0/bin/* , התראות בזמן אמת דרך ZMQ, ופרטיות — הכתובות שלכם נשארות מוסתרות מספקים חיצוניים. הפעלת צומת משלכם חוסכת עד $2,000 בחודש בעמלות API לפרויקט עיבוד תשלומים ממוצע.
דרישות חומרה
| מצב | דיסק | זיכרון RAM | מעבד | תיאור |
|---|---|---|---|---|
| גזום (Pruned) | 10–15 GB | 2 GB | 2 ליבות | מאחסן רק קבוצת UTXO + N הבלוקים האחרונים |
| מלא | 650+ GB | 4 GB | 4 ליבות | היסטוריית עסקאות מלאה |
| מלא + Electrum (Fulcrum) | 1 TB+ | 8 GB | 4+ ליבות | לארנקים וחיפוש כתובות |
SSD הוא חובה — HDD מאט את הורדת הבלוקים הראשונית פי 3–5 בגלל קריאות אקראיות במהלך אימות קבוצת UTXO. אנחנו משתמשים רק ב-NVMe בסביבת ייצור. עלות חומרת שרת החל מ-$80 לחודש, שמחזירה את עצמה תוך 2–3 חודשים.
התקנת Bitcoin Core
# Ubuntu 22.04 wget https://bitcoincore.org/bin/bitcoin-core-27.0/bitcoin-27.0-x86_64-linux-gnu.tar.gz # Всегда верифицируйте подпись! wget https://bitcoincore.org/bin/bitcoin-core-27.0/SHA256SUMS wget https://bitcoincore.org/bin/bitcoin-core-27.0/SHA256SUMS.asc gpg --recv-keys 152812300785C96444D3334D17565732E08E52E gpg --verify SHA256SUMS.asc SHA256SUMS sha256sum --check SHA256SUMS --ignore-missing tar xzf bitcoin-27.0-x86_64-linux-gnu.tar.gz sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-27.0/bin/* תצורה ~/.bitcoin/bitcoin.conf:
# Основное server=1 daemon=1 txindex=1 # Индекс всех транзакций (нужен для lookupByTxId) # RPC rpcuser=bitcoinrpc rpcpassword=STRONG_RANDOM_PASSWORD_HERE rpcbind=127.0.0.1 rpcallowip=127.0.0.1 # ZMQ — для real-time нотификаций zmqpubrawblock=tcp://127.0.0.1:28332 zmqpubrawtx=tcp://127.0.0.1:28333 zmqpubhashblock=tcp://127.0.0.1:28334 # Производительность dbcache=1000 # Кеш для initial sync, МБ maxmempool=500 # Размер мемпула, МБ # Для pruned mode (уберите txindex): # prune=10000 # Хранить 10 GB блоков # Основное server=1 daemon=1 txindex=1 # Индекс всех транзакций (нужен для lookupByTxId) # RPC rpcuser=bitcoinrpc rpcpassword=STRONG_RANDOM_PASSWORD_HERE rpcbind=127.0.0.1 rpcallowip=127.0.0.1 # ZMQ — для real-time нотификаций zmqpubrawblock=tcp://127.0.0.1:28332 zmqpubrawtx=tcp://127.0.0.1:28333 zmqpubhashblock=tcp://127.0.0.1:28334 # Производительность dbcache=1000 # Кеш для initial sync, МБ maxmempool=500 # Размер мемпула, МБ # Для pruned mode (уберите txindex): # prune=10000 # Хранить 10 GB блоков הוא קריטי אם אתם צריכים לחפש עסקאות לפי hash. בלעדיו, רק UTXOs נוכחיים זמינים. הפעלתו בדיעבד דורשת אינדוקס מחדש מלא (txindex=1). אם מקרה השימוש שלכם דורש חיפוש עסקאות לפי hash, bitcoind -reindex הוא חובה. בלעדיו, רק UTXOs נוכחיים נגישים. כאשר הוא מופעל בדיעבד, הצומת מבצע אינדוקס מחדש של כל הבלוקים — מה שיכול לקחת זמן נוסף. המהנדסים שלנו ממליצים להפעיל את האינדוקס מההתחלה אם קיים צורך פוטנציאלי בנתונים היסטוריים.
הורדת בלוקים ראשונית
IBD ברשת הראשית אורכת 1–5 ימים על SSD בהתאם לחומרה. כדי להאיץ אותה, התחילו עם txindex=1. עקבו אחר ההתקדמות דרך dbcache=4000. אנחנו מכווננים פרמטרים כדי למזער את זמן הסנכרון.
שימוש ב-ZMQ להתראות בזמן אמת
סקרים דרך RPC כל כמה שניות הם פרימיטיביים. ZMQ מספק התראות push — עד פי 100 מהירות יותר.
import * as zmq from 'zeromq'; const blockSocket = new zmq.Subscriber(); const txSocket = new zmq.Subscriber(); blockSocket.connect('tcp://127.0.0.1:28334'); blockSocket.subscribe('hashblock'); txSocket.connect('tcp://127.0.0.1:28333'); txSocket.subscribe('rawtx'); // Новый блок for await (const [topic, message] of blockSocket) { const blockHash = message.toString('hex'); console.log('New block:', blockHash); await processNewBlock(blockHash); } // Новая транзакция в мемпуле for await (const [topic, rawTx] of txSocket) { const tx = bitcoin.Transaction.fromBuffer(rawTx); await processPendingTransaction(tx); } קריאות RPC חיוניות
import * as Client from 'bitcoin-core'; const client = new Client({ host: '127.0.0.1', port: 8332, username: 'bitcoinrpc', password: process.env.BITCOIN_RPC_PASSWORD!, }); // Информация о транзакции const tx = await client.getRawTransaction(txHash, true); // Информация о UTXO const utxo = await client.getTxOut(txHash, outputIndex); // Создание нового адреса (для HD wallet лучше использовать bitcoinjs-lib) const address = await client.getNewAddress('payment_label', 'bech32'); // Текущий fee rate (sat/vB для следующего блока) const feeRate = await client.estimateSmartFee(1); // feeRate.feerate в BTC/kB, переводим в sat/vB: const satPerVbyte = Math.ceil(feeRate.feerate * 100_000); אבטחת ה-RPC והצומת שלכם
לעולם אל תחשוף את פורט RPC (8332) חיצונית. גישה רק דרך localhost או VPN:
# Firewall: закрыть RPC снаружи ufw deny 8332 ufw allow 8333 # P2P порт — должен быть открыт для синхронизации # Systemd unit для автозапуска cat > /etc/systemd/system/bitcoind.service << EOF [Unit] Description=Bitcoin daemon After=network.target [Service] User=bitcoin ExecStart=/usr/local/bin/bitcoind -conf=/home/bitcoin/.bitcoin/bitcoin.conf Restart=on-failure TimeoutStartSec=infinity [Install] WantedBy=multi-user.target EOF systemctl enable bitcoind systemctl start bitcoind משתמש מערכת נפרד bitcoin-cli getblockchaininfo | jq '.verificationprogress' ללא sudo — נוהג מקובל. קבצי ארנק ב-import * as zmq from 'zeromq'; const blockSocket = new zmq.Subscriber(); const txSocket = new zmq.Subscriber(); blockSocket.connect('tcp://127.0.0.1:28334'); blockSocket.subscribe('hashblock'); txSocket.connect('tcp://127.0.0.1:28333'); txSocket.subscribe('rawtx'); // Новый блок for await (const [topic, message] of blockSocket) { const blockHash = message.toString('hex'); console.log('New block:', blockHash); await processNewBlock(blockHash); } // Новая транзакция в мемпуле for await (const [topic, rawTx] of txSocket) { const tx = bitcoin.Transaction.fromBuffer(rawTx); await processPendingTransaction(tx); } עם גיבוי seed.
מלכודות פריסה נפוצות
בעיה נפוצה אחת היא הערכת חסר של שטח דיסק. צומת מלא עם txindex דורש 650+ GB, ורבים שוכחים שהבלוקצ'יין גדל. אנחנו ממליצים על מרווח ביטחון של 20–30%. טעות נוספת היא השארת פורט RPC פתוח. אנחנו מגדירים את חומת האש מיד. בנוסף, הפעלת הצומת כ-root — אנחנו תמיד יוצרים משתמש bitcoin ייעודי.
הקמת ניטור צומת
לניטור, אנחנו משתמשים ב-Prometheus עם bitcoin_exporter ומגדירים התראות בטלגרם. זה מאפשר תגובה בזמן לכשלי צומת או גידול בשטח הדיסק. אנחנו כוללים ניטור בסיסי בפריסת המפתחות שלנו.
מה כוללת פריסת המפתחות שלנו
אנחנו מספקים מחזור מלא: התקנת Bitcoin Core, תצורה מותאמת לצרכים שלכם, גשר ZMQ לנתונים בזמן אמת, חיזוק אבטחה (חומת אש, systemd, משתמש נפרד), ניטור בריאות ותיעוד. בנוסף, הדרכת צוות ותמיכה טכנית 24/7. המהנדסים שלנו מביאים ניסיון של 5+ שנים ו-50+ צמתים פרוסים — המבטיחים פעולה יציבה. צרו קשר לייעוץ לפרויקט שלכם. הזמינו פריסת צומת מפתחות וקבלו תשתית יציבה.
| השוואת מצבים | גזום (Pruned) | מלא | מלא + Electrum |
|---|---|---|---|
| דיסק | 10-15 GB | 650+ GB | 1 TB+ |
| היסטוריית עסקאות | רק בלוקים אחרונים | מלאה | מלאה + חיפוש כתובות |
| זמן IBD | 1-2 ימים | 2-5 ימים | 3-7 ימים |
| מומלץ עבור | אפליקציות קלות | עיבוד תשלומים | ארנקים עם חיפוש |







