Integration Overview¶
This documentation is also available as a PDF.
Dash Core is a “fork” of Bitcoin Core and shares many common functionalities. Key differences relate to existing JSON-RPC commands which have been customized to support unique functionalities such as InstantSend.
- General Information: Dash is a “Proof of Work” network and is
similar to Bitcoin.
- Block Time: ~2.6 Minutes per Block
- Github Source: https://github.com/dashpay/dash
- Latest Release: https://github.com/dashpay/dash/releases
- JSON-RPC Interface: The majority of commands are unchanged from Bitcoin making integration into existing systems relatively straightforward. Note that the following commands have been modified to support InstantSend:
- Block Hashing Algorithm: Dash uses the “X11” algorithm in place of SHA256 used in Bitcoin. It’s important to note, however, that this only affects the hashing of the Block itself. All other internals utilize SHA256 hashes (transactions, merkle root, etc) which allows for most existing libraries to work in the Dash ecosystem.
- Special Transactions: Dash Core v0.13.x introduces the concept of “Special Transactions”. Please see the Transaction Type Integration Guide for more information.
Special Transactions¶
This documentation is also available as a PDF.
Dash 0.13.0 and higher implement DIP002 Special Transactions, which form a basis for new transaction types that provide on-chain metadata to assist various consensus mechanisms. The following special transaction types exist:
Release | إصدار | Type | Payload Size | Payload | Payload JSON | Transaction Purpose |
---|---|---|---|---|---|---|
v0.13.0 | 3 | 0 | n/a | n/a | n/a | Standard Transaction |
v0.13.0 | 3 | 1 | <variable int> | <hex> | proRegTx | Masternode Registration |
v0.13.0 | 3 | 2 | <variable int> | <hex> | proUpServTx | Update Masternode Service |
v0.13.0 | 3 | 3 | <variable int> | <hex> | proUpRegTx | Update Masternode Operator |
v0.13.0 | 3 | 4 | <variable int> | <hex> | proUpRevTx | Masternode Revocation |
v0.13.0 | 3 | 5 | <variable int> | <hex> | cbTx | Masternode List Merkle Proof |
v0.13.0 | 3 | 6 | <variable int> | <hex> | qcTx | Quorum Commitment |
Integration notes:
- DIP002 Special Transactions are a foundational component of Dash Core v0.13.0 and introduce a new Transaction Version and related “Payload” to the network.
- Integrated Systems must be able to serialize and deserialize these new Transaction Types in order to accurately encode and decode Raw Transaction data.
- From a backwards compatibility
perspective, the 4 byte (32-bit)
version
field included in Legacy Transactions has been split into two fields:version
andtype
(each consisting of 2 bytes). - Refer to the Special Transactions section of the dash developer reference for additional detail on these data types, e.g. <variable int>.
- InstantSend
status and Payload JSON (e.g.
proRegTx
) is included in the JSON-RPC response, please note that this data is not part of the calculated hash and is provided for convenience.
See the v0.13.0 transaction types integration documentation (PDF) for worked examples of each transaction type.
إرسال فوري¶
This documentation is also available as a PDF.
InstantSend is a feature provided by the Dash network that allows for zero-confirmation transactions to be safely accepted and re-spent. The network attempts to lock the inputs of every valid transaction when it is broadcast to the network. Every secured transaction is included in a following block in accordance with standard blockchain principles.
InstantSend is enabled by the Masternode Network which comprises approximately 5,000 masternode servers. These nodes are differentiated from standard nodes by having proven ownership of 1,000 Dash, making the network highly resistant to Sybil attacks. Masternodes form Long-Living Masternode Quorums (LLMQs), which are responsible for providing near instant certainty to the transaction participants that the transaction inputs cannot be respent, and that the transaction will be included in a following block instead of a conflicting transaction.
This concept works as an extension to Nakamoto Consensus. InstantSend enables transacted funds to be immediately and securely respent by the recipient, even before the transaction is included in a block.
تلقي معاملات الإرسال الفوري¶
Receiving an InstantSend Transaction introduces two requirements:
- The ability to determine the “InstantSend Status” of a given transaction.
- The ability to adjust “Confirmation Status” independently of block confirmation.
InstantSend Status is typically determined through direct connection with the dash daemon, ZMQ notification, or through the usage of an external wallet notification script.
Direct Connection: InstantSend Status can be identified through direct connection with the Dash daemon using JSON-RPC protocol. The “instantlock” attribute of the JSON response reflects the status of the transaction and is included in the following commands:
- getrawmempool
- getmempoolancestors
- getmempooldescendants
- getmempoolentry
- getrawtransaction
- decoderawtransaction
- gettransaction
- listtransactions
- listsinceblock
ZMQ Notification: Whenever a transaction enters the mempool and whenever a transaction is locked in the mempool, ZMQ notifications can be broadcast by the node. A list of possible ZMQ notifications can be found here.
The following notifications are relevant for recognizing transactions and their corresponding instantlocks:
- zmqpubhashtx
- zmqpubhashtxlock
- zmqpubrawtx
- zmqpubrawtxlock
Wallet Notification: The Dash Core Daemon can be configured to execute an external script whenever an InstantSend transaction relating to that wallet is observed. This is configured by adding the following line to the dash.conf file:
instantsendnotify=/path/to/concurrent/safe/handler %s
This is typically used with a wallet that has been populated with watch-only addresses.
البث المعاملات للإرسال الفوري¶
Since Dash v0.14.0 established LLMQs on the Dash network, quorums will now attempt to lock every valid transaction by default without any additional fee or action by the sending wallet or user. A transaction is eligible for InstantSend when each of its inputs is considered confirmed. This is the case when at least one of the following circumstances is true:
- the previous transaction referred to by the input is confirmed with 6 blocks
- the previous transaction is confirmed through an older InstantSend lock
- the block containing the previous transaction is ChainLocked
When checking the previous transaction for an InstantSend lock, it is important to also do this on mempool (non-mined) transactions. This allows chained InstantSend locking.
موارد إضافية¶
توفر الموارد التالية معلومات إضافية حول الإرسال الفوري وتهدف إلى المساعدة على توفير فهم أكثر اكتمالاً للتكنولوجيات الأساسية.
خدمات API¶
This documentation is also available as a PDF.
توجد عدة خدمات API لتسهيل التكامل السريع والسهل مع شبكة داش للخدمات بما في ذلك:
- بث المعاملات
- معدل التحويل
- تحويل العملة
- جيل الفاتورة
يتم استخدام خدمات API بشكل نموذجي للتخلص من متطلبات تشغيل البنية الأساسية الخاصة بك لدعم تفاعلات بلوكشين. يتضمن ذلك آليات مثل:
- تشكيل ونقل المعاملات إلى الشبكة.
- توليد العناوين باستخدام HD محافظ.
- معالجة الدفع باستخدام WebHooks.
هناك مجموعة متنوعة من الخيارات لدعم هذه الطرق ، مع الاختلاف الرئيسي في كون نموذج التسعير مضمنًا وميزات مدعومة. تحاول القائمة التالية لمقدمي واجهة برمجة التطبيقات تحديد هذه الميزات / الاختلافات الرئيسية كما تتضمن أيضًا رابطًا للوثائق ذات الصلة.
نظرة¶
https://github.com/dashevo/insight-api
The open-source Insight REST API provides you with a convenient, powerful and simple way to read data from the Dash network and build your own services with it. A practical guide to getting started with the Insight API and Insight UI block explorer is available here.
- الميزات: بث المعاملات ، إخطارات WebSocket.
- نموذج التسعير: مجاني / مفتوح المصدر
- الوتيقة:https://github.com/dashevo/insight-api
BlockCypher¶
BlockCypher هو واجهة برمجة تطبيقات بسيطة ومعظمها RESTful JSON للتفاعل مع بلوكشين ، يمكن الوصول إليها عبر HTTP أو HTTPS من نطاق api.blockcypher.com.
- الميزات: بث المعاملات ، HD محفظة / توليد عناوين ، WebSocket و WebHook Callbacks بالإضافة إلى إعادة توجيه الدفع. BlockCypher لا يتعامل مع مفاتيح خاصة.
- نموذج التسعير: لكل استدعاء API ، طلبات 5000 -> 85.00 دولار في الشهر (https://accounts.blockcypher.com/plans)
- الوتيقة:https://www.blockcypher.com/dev/dash/
BitGo¶
BitGo provides a simple and robust RESTful API and client SDK to integrate digital currency wallets with your application. Support for Dash InstantSend is available.
- Features: Multi-Signature HD Wallets, Wallet Operations, WebSocket and WebHook Notifications, Custody Solutions
- Pricing Model: Per API Call
- Documentation: https://www.bitgo.com/api/v2/
ChainRider¶
ChainRider هي خدمة سحابة توفر مجموعة من واجهات برمجة التطبيقات REST لإدارة واستكشاف العملة الرقمية.
- الميزات: استعلامات بلوكشين ، إخطارات الأحداث ، بث المعاملات ، معالجة الدفع ، إلخ.
- نموذج التسعير: إصدار تجريبي مجاني والدفع لكل مكالمة API
- الوتيقة:https://www.chainrider.io/docs/dash
Blockmove¶
Сryptocurrency wallet, merchant & API provider. Blockmove is a simple and easy way to start accepting payments in cryptocurrency.
- Features: Non-custodial wallet, HD Wallet, High anonymity, Low fees. Private keys are not stored and are available only to the user.
- Pricing Model: API - 0.3% for withdrawal transactions. Merchant - 1 year free, then $49/month
- Documentation: https://docs.blockmove.io
NOWNodes¶
NOWNodes provides simple, fast, and secure RPC access to Dash full nodes. The low latency and high performance is of great use to researchers and businesses such as crypto miners or hardware wallet providers.
- Features: All Dash RPC commands
- Pricing Model: Free up to 20k requests, Pricing tiers
- Documentation: https://nownodes.io/documentation
GoCoin¶
تجعل منصة GoCoin من اتخاذ داش أمرًا سهلاً مثل تثبيت مكون إضافي. يتم تنفيذ معالجة الدفع بالفعل لكل منصة تسوق رئيسية. تركز GoCoin على مساعدة التجار في منافذ الخصوصية وصناعات محددة ، وتتعامل مع جميع مخاطر المعاملات لجميع المدفوعات من عملائك.
- الميزات: الفواتير ، أسعار الصرف ، WebHook Callbacks. تحتفظ GoCoin بالمفاتيح الخاصة على خادمها مما يسمح للتاجر بسحب الأموال في العملات الرقمية أو تحويلها إلى Fiat.
- التكامل: WooCommerce ، Magento ، Prestashop ، VirtueMart ، ZenCart ، OpenCart ، OSCommerce ، UberCart ، nopCommerce ، WHMCS ، NATS4 ، Shopify.
- نموذج التسعير: رسوم المعالجة بنسبة 1٪ (https://gocoin.com/fees)
- الوتيقة:https://gocoin.com/docs
CoinPayments¶
CoinPayments هو عبارة عن بوابة دفع متكاملة لعمليات العملات الرقمية مثل داش. تتوفر المكونات الإضافية لسلة التسوق لجميع كاميرات الويب الشائعة المستخدمة اليوم. يمكن أن تساعدك CoinPayments في إعداد عملية دفع جديدة ، أو تتكامل مع عملية الدفع السابقة.
- الميزات: الفواتير ، أسعار الصرف ، WebHook Callbacks. تحتفظ CoinPayments بمفاتيح خاصة على خادمها تسمح للتاجر بسحب الأموال في العملات الرقمية أو تحويلها إلى Fiat.
- التكاملات: aMember Pro، Arastta، Blesta، BoxBilling، Drupal، Ecwid، Hikashop، Magento، OpenCart، OSCommerce، PrestaShop، Tomato Cart، WooCommerce، Ubercart، XCart، ZenCart
- نموذج التسعير: 0.5٪ رسوم المعالجة (https://www.coinpayments.net/help-fees)
- الوتيقة:https://www.coinpayments.net/apidoc
موارد SDK¶
This documentation is also available as a PDF.
SDKs (Software Development Kits) are used to accelerate the design and development of a product for the Dash Network. These resources can either be used to interface with an API provider or for the creation of standalone applications by forming transactions and/or performing various wallet functions.
دليل مطورين داش¶
The Dash Developer Portal aims to provide the information you need to understand Dash and start building Dash-based applications. To make the best use of this documentation, you may want to install the current version of Dash Core and Dash Platform, either from source, from a pre-compiled executable or from Docker Hub.
- Dash Core: https://dashcore.readme.io/
- Dash Platform: https://dashplatform.readme.io/
NodeJS/JavaScript: Dashcore¶
Dashcore is a fork of Bitcore and operates as a full Dash node — your apps run directly on the peer-to-peer network. For wallet application development, additional indexes have been added into Dash for querying address balances, transaction history, and unspent outputs.
- النظام الأساسي: NodeJS / Javascript
- الوتيقة:https://bitcore.io/api/lib
- مستودع: https://github.com/dashevo/dashcore-lib
- مستودع نود؛ https://github.com/dashevo/dashcore-node
- See also: Insight API
NodeJS/JavaScript: DashJS¶
DashJS allows you to transact on L1 or fetch/register documents on L2 within a single library, including management and signing of your documents.
- النظام الأساسي: NodeJS / Javascript
- Documentation: https://dashevo.github.io/DashJS
- Repository: https://github.com/dashevo/DashJS
PHP: Bitcoin-PHP¶
https://github.com/snogcel/bitcoin-php
Bitcoin-PHP is an implementation of Bitcoin with support for Dash using mostly pure PHP.
- Platform: PHP
- Documentation: https://github.com/Bit-Wasp/bitcoin-php/blob/master/doc/Introduction.md
- Repository: https://github.com/snogcel/bitcoin-php
Python: PyCoin¶
https://github.com/DeltaEngine/pycoin
PyCoin is an implementation of a bunch of utility routines that may be useful when dealing with Bitcoin and Dash. It has been tested with Python 2.7, 3.6 and 3.7.
- Platform: Python
- Documentation: https://pycoin.readthedocs.io/en/latest/
- Repository: https://github.com/DeltaEngine/pycoin
- See also: JSON-RPC Utilities
Java: DashJ¶
https://github.com/HashEngineering/dashj
داش ج هي مكتبة للعمل مع بروتوكول داش. يمكنه الاحتفاظ بمحفظة ، إرسال / استقبال المعاملات (بما في ذلك الإرسال الفوري) دون الحاجة إلى نسخة محلية من داش كور ، ولديه العديد من الميزات المتقدمة الأخرى. يتم تنفيذه في Java ولكن يمكن استخدامه من أي لغة متوافقة مع JVM: يتم تضمين أمثلة في Python و JavaScript.
- النظام الأساسي: Java
- الوتيقة:https://bitcoinj.github.io/getting-started
- Repository: https://github.com/HashEngineering/dashj
- متال التطبيق: https://github.com/tomasz-ludek/pocket-of-dash
Objective-C: Dash-Sync¶
https://github.com/dashevo/dashsync-iOS
Dash-Sync is an Objective-C Dash blockchain framework for iOS. It implements all most relevant Bitcoin Improvement Proposals (BIPs) and Dash Improvement Proposals (DIPs).
- Platform: iOS
- Repository: https://github.com/dashevo/dashsync-iOS
.NET: NBitcoin¶
https://github.com/MetacoSA/NBitcoin
NBitcoin هي مكتبة بيتكوين الأكثر اكتمالا لمنصة .NET ، وقد تم تصحيحها لتتضمن دعم داش. وتنفذ جميع مقترحات تحسين بيتكوين الأكثر ملاءمة (BIPs) و داش تحسين الإقتراحات (DIPs). كما يوفر وصولاً منخفض المستوى إلى البدايات الأولية بحيث يمكنك بسهولة إنشاء التطبيق الخاص بك فوقه.
- النظام الأساسي:. NET
- الوتيقة: https://programmingblockchain.gitbooks.io/programmingblockchain/content/
- مستودع: https://github.com/MetacoSA/NBitcoin
- See also: JSON-RPC Utilities
BlockCypher¶
يوفر BlockCypher أيضًا SDKs للعميل.
- النظام الأساسي: روبي ، Python ، Java ، PHP ، Go ، NodeJS
- المستودعات: https://www.blockcypher.com/dev/dash/#blockcypher-supported-language-sdks
GoCoin¶
- النظام الأساسي: JavaScript ، PHP ، Java ، Ruby ، .NET ، Python
- المستودعات: https://gocoin.com/docs
آلات البيع¶
أصدر عضو المنتدى moocowmoo تعليمات برمجية لمساعدة التجار في إنشاء آلة البيع الخاصة بهم وإعدادها لتلقي دفعات الإرسال الفوري في داش. يمكن أيضًا استخدام برنامج Dashvend لإنشاء أي نوع من أنظمة الدفع ، بما في ذلك أنظمة نقاط البيع ، التي يمكنها قبول دفعات الإرسال الفوري.
مؤشرات السعر¶
You can add a simple price ticker widget to your website using the simple code snippet generator from CoinGecko.
تتوفر أدوات مماثلة مع تصاميم مختلفة من CoinLib, WorldCoinIndex و Cryptonator, بينما تتوفر واجهة برمجة التطبيقات التي توفر معلومات مماثلة من داش سنترال.
الماسح الضوئي¶
العديد من المحافظ قادرة على توليد رموز QR التي يمكن مسحها ضوئيا لتبسيط دخول عنوان داش. يؤدي طباعة هذه الرموز أو نشرها على موقع الويب إلى تسهيل تلقي الدفعات والنصائح في داش ، سواء عبر الإنترنت أو في وضع عدم الاتصال.
- في داش كور ، انتقل إلى علامة استقبال ، ثم أنشئ عنوانًا إذا لزم الأمر ، وانقر عليه نقرًا مزدوجًا لعرض رمز الاستجابة السريعة. انقر بزر الماوس الأيمن على رمز الاستجابة السريعة وحدد حفظ الصورة لحفظ ملف PNG.
- في داش في الأندرويد ، انقر على طلب عملات ثم انقر على رمز QR لعرض صورة أكبر. يمكنك قطة الشاشة هذه لحفظ الصورة.
- في داش في الأبفون ، مرّر سريعًا إلى اليسار لعرض شاشة استقبال داش. سيظهر رمز الاستجابة السريعة والعنوان. يمكنك قطة الشاشة هذه لحفظ الصورة.
- لإنشاء رمز الاستجابة السريعة من أي عنوان داش ، تفضل بزيارة هنا وببساطة قم بلصق عنوان الشرطة خاصتك لإنشاء صورة.