整合介绍

此文档的 PDF 格式 PDF

Dash Core v0.13.x 是 Bitcoin 分叉并且与之共享很多功能。与现有 JSON-RPC 命令有关的关键区别被用来支持特有功能如即时发送。

  1. **简要信息:**Dash 是一个与 Bitcoin 类似的”工作量证明“网络。
    1. 区块时间: 每 ~2.6 分钟产生一个区块
    2. Github 源代码: https://github.com/dashpay/dash
    3. 最新发布:https://github.com/dashpay/dash/releases
  2. **JSON-RPC 接口:**大部分命令直接简单地从已有 Bitcoin 系统引入而没有修改。注意以下命令为了支持即时发送已作修改:
  3. 区块 Hashing 算法: Dash 使用 ”X11“ 算法代替 Bitcoin 中使用的 SHA256。值得注意的是这仅仅影响区块头本身的 Hash。所有其它内部依然使用 SHA256 (交易,Merkle 根等等)因此允许大多现有的库能在 Dash 生态中正常工作。
  4. 特殊交易: Dash Core v0.13.x 引入了”特殊交易“的概念。更多信息请查阅 Transaction Type Integration Guide

v0.13.0 整合须知

该文档的 PDF 版本 PDF

Dash 0.13.0 实现了 DIP002 Special Transactions,它构建了一种新的交易类型来提供线上元数据从而帮助不同的共识机制。存在如下特殊交易类型:

发布 版本 类型 载荷大小 载荷 Payload JSON 交易目的
v0.13.0 3 0 标准交易
v0.13.0 3 1 <variable int> <hex> proRegTx 主节点注册
v0.13.0 3 2 <variable int> <hex> proUpServTx 主节点服务更新
v0.13.0 3 3 <variable int> <hex> proUpRegTx 更新主节点操作者
v0.13.0 3 4 <variable int> <hex> proUpRevTx 主节点取消
v0.13.0 3 5 <variable int> <hex> cbTx 主节点列表 Merkle 证明
v0.13.0 3 6 <variable int> <hex> qcTx 仲裁团承诺

整合须知:

  1. DIP002 特殊交易 是 Dash Core v0.13.0 的一个基础部分,它引入一个新的交易版本和相关”载荷“到网络。
  2. 整合系统必须能够 序列和反序列 这些新的交易类型从而能精确地编码和解码交易元数据。
  3. 从一个 向下兼容 的角度, 旧交易中包含的 4 字节 (32位) 版本 字段被分为两个字段: 版本类型 (均由两个字节构成)。
  4. 关于这些数据类型的更多细节请参考开发者指导章节 Special Transactions ,例如 <variable int>。
  5. 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.

参考 v0.13.0 交易类型整合文档 (PDF) 来获取每个交易类型的可用实例。

即时发送概述

本文档的 PDF 版本 PDF.

即时发送是 Dash 网络提供的为方便商家与其它服务提供者安全接收零确认交易的功能。所有即时发送交易在被广播的时候立刻被”主节点网络“确认 25 个区块。该交易将依照标准区块链原则被打包进下一个区块。

即时交易由接近 4,800 个主节点服务器激活。这些节点与普通节点不同的是它们被证明拥有 1,000 Dash。这类特殊服务器的责任之一就是执行”交易锁定“,也被称为即时发送。

本概念为网络共识的扩展。当一个”即时发送“交易出现,网络执行一个额外的验证过程来检查交易的以下两个属性:

  1. 输入成熟度: 网络将要求所有输入至少有 6 个确认。
  2. 输入构成: 使用中的输入数量满足费用要求。
    1. 1 - 4 输入: 自动即时发送 手续费 0.00001 DASH 每 kB。
    2. 5+ 输入: 要求 0.0001 DASH 手续费每个输入。

假如**输入成熟度**与**输入构成**满足要求,网络将”锁定“交易相关输入25 个区块。包含4个或更少输入的交易被称为”简单交易“,它们无需额外费用。

自动即时发送

Dash Core v0.13.x 引入自动即时发送。 任何被识别为”简单交易“的交易在使用标准交易广播节点时将自动被广播为即时交易。

即时发送 与 标准交易

”即时发送“指被主节点网络提供额外保证的一个标准交易。因此从整合的角度来说,这两种类型的交易并没有技术差异。

最大的区别在于如何将确认策略应用于一个整合系统内。接收系统必须清楚”即时发送“状态从而安全的应用该技术激活的交易确认策略。

接收即时发送交易

接收一个即时发送交易需要两个条件:

  1. 确认一个交易的”即时发送状态“
  2. 独立地调整区块确认数与”确认状态“。

”即时发送“状态通常可以通过与 dash 进程的直接连接来判断,ZMQ notification,或使用一个外部钱包通知脚本。

**直接连接:**即时发送状态能通过使用 JSON-RPC 协议与 Dash 进程直接连接来判断。JSON 返回的交易”即时锁“属性反应了交易的状态,它被包含在如下命令:

钱包通知: Dash 进程被配置为只要观察到一个与钱包相关的即时发送交易时执行一个外部脚本。在配置文件 dash.conf 添加如下行:

instantsendnotify=/path/to/concurrent/safe/handler %s

这常常被用于包含`只读 <https://dash-docs.github.io/en/glossary/watch-only-address>`__ 地址的钱包。

广播即时发送功能的交易信息

自动即时发送要求整合的系统满足两个条件:

  1. 能评估一个交易的输入数量。
  2. 能为输入数量不低于 5 个的交易动态调整手续费。

在很多情况下一个整合系统已经包含了为了降低费用而优化输入的相关过程,它能确保只构造”简单交易“,因此无须额外开发工作。

在一些未知的情况下,整合系统应当能够根据交易输入的数量计算手续费。必须使用0.0001 DASH每个输入的手续费方能使交易作为即时发送被正常广播。在这种情况下,值得注意的是在签署 sendrawtransaction  时必须设置 ”即时发送“标志位。例如:

sendrawtransaction "hexstring" false true

其它资源

下列资源提供即时发送功能的更多信息,以便帮助用户全面地了解它的基础技术。

API 服务

该文档的 PDF 版本 PDF

现有的多种应用程序接口服务可以帮助用户轻松、快捷地享受达世币网络的各项服务,其中包括:

  • 交易广播
  • 汇率
  • 货币兑换
  • 发票生成

应用程序接口的意义在于它可以免除用户为实现区块链交互而运行基础设施的麻烦。其中涉及的机制和流程包括:

  • 向达世币网络公告交易信息。
  • 通过HD钱包生成地址。
  • 通过WebHooks处理支付。

以定价模式和支持的功能为区分标准,市面上可供使用的设备有很多。下表罗列了常见的应用程序接口供应商、主打产品的性能和相关说明文档的链接。

Insight

../_images/insight.png

https://github.com/dashevo/insight-api

开源 REST API 给你提供一个方便强大而简单的读取 Dash 网络和利用它构建你自己服务的方式。开始使用 Insight API 和 Insight UI 区块浏览器的实用手册 <insight-api>

BlockCypher

../_images/blockcypher.png

https://www.blockcypher.com

BlockCypher是简单实用的JSON应用程序接口,可实现与区块链的交互,还可以借助HTTP或HTTPS在api.blockcypher.com域名上进行访问。

BitGo

../_images/bitgo.png

https://www.bitgo.com

BitGo 提供一个简单有力的 RESTful API 和用户 SDK 来为你的应用整合数字货币钱包。同时支持 Dash 即时发送。

  • 功能:多用户签名 HD 钱包,钱包操作,WebSocket 和 WebHook 通知,保管解决方案
  • 价值模型: 每个 API 调用
  • 文档: https://www.bitgo.com/api/v2/

ChainRider

../_images/chainrider.png

https://www.chainrider.io

ChainRider是云服务平台,为数字货币的管理和探究提供一套REST应用程序接口。

  • 功能:区块链询问,事件通知,交易广播,支付处理,等。
  • 定价:免费试用,每次API调用时付费
  • 说明文档的链接: https://www.chainrider.io/docs/dash

GoCoin

../_images/gocoin.png

https://gocoin.com

在GoCoin平台的帮助下,达世币的集成就和插件安装一样简单。它为各大交易平台提供便捷的支付处理,侧重为隐私保护等特定的小众行业提供服务,并帮助他们规避来自所有客户的交易风险。

  • 功能:发票生成、汇率及WebHook回调。GoCoin在其服务器上保存私钥,帮助商家以加密数字货币的形式提款或实现加密数字货币与法定货币间的兑换。
  • 合作商:WooCommerce、Magento, Prestashop、VirtueMart、ZenCart、OpenCart、OSCommerce、 UberCart、nopCommerce、WHMCS、NATS4和Shopify。
  • 定价:收取1%的交易费用(https://gocoin.com/fees)
  • 说明文档的链接: https://gocoin.com/docs

CoinPayments

../_images/coinpayments.png

https://www.coinpayments.net

CoinPayments是适用于达世币等加密数字货币的集成支付网关。它为当前流行的所有webcarts提供购物车插件,还可以帮助用户设置新的结帐页面或合并之前的结帐页面。

  • 功能:发票生成、汇率及WebHook回调。CoinPayments在其服务器上保存私钥,帮助商家以加密数字货币的形式提款或实现加密数字货币与法定货币间的兑换。
  • 合作商: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

软件开发工具包资源

本文档PDF 版本 PDF.

SDKs ( 软件开发包) 用来加速设计和开发一个 Dash 网络产品。这些资源可被用来与一个 API 提供者交互或通过构造交易与执行不同的钱包功能来创建独立应用。

达世币研发者指南

../_images/dash-logo.png

https://dash-docs.github.io/en/developer-guide

达世币研发者指南致力于为读者提供达世币的相关信息,并帮助他们创建以达世币为基础的应用程序。为了充分发挥这份指南的作用,用户需要通过源代码或预编译的可执行文件安装Dash Core钱包的最新版本。

NodeJS/JavaScript: Dashcore

../_images/bitcore.png

https://bitcore.io

Dashcore是Bitcore的一个分叉。它以一个达世币全节点的方式运行 — 也就是说,应用程序将在P2P网络上直接运行。对于钱包应用的开发来说,研发者需要增加额外的索引,以便查询地址余额、交易历史记录和未经支出的额度。

PHP: Bitcoin-PHP

https://github.com/snogcel/bitcoin-php

Bitcoin-PHP 是纯PHP 实现的支持 Dash 的 Bitcoin。

Python: PyCoin

https://github.com/DeltaEngine/pycoin

PyCoin 是一个在处理 Bitcoin 与 Dash 时很有用的一系列工具。已在 Python 2.7, 3.6 和 3.7环境下测试。

Java: DashJ

../_images/bitcoinj.png

https://github.com/HashEngineering/dashj

DashJ是一个适用于达世币协议的库。它可以维护钱包的运行,支持达世币的接收与发送(包括即时发送功能),同时还具备许多其它高级功能,而且还无需建立Dash Core钱包的副本。虽然它要借助Java才能实现各项功能,但它也可以借助Java虚拟机的兼容语言,其中包括Python和JavaScript中的示例。

Objective-C: Dash-Sync

../_images/dash-logo.png

https://github.com/dashevo/dashsync-iOS

Dash-Sync 是一个用于 iOS 的 Objective-C Dash 区块链框架。它实现了所有与 Bitcoin 改进提案 (BIPs) 和 Dash 改进提案 (DIPs)相关的内容。

.NET: NBitcoin

../_images/dash-logo.png

https://github.com/MetacoSA/NBitcoin

NBitcoin是.NET平台上最完整的比特币程序库,并且在修补后可支持达世币。它不仅支持最新的比特币优化提案 (BIPs) 和达世币优化提案 (DIPs) ,并且还提供对达世币原语的访问,从而帮助研发者以此为基础轻松地构建应用程序。

BlockCypher

../_images/blockcypher.png

https://www.blockcypher.com

BlockCypher也提供软件开发工具箱。

GoCoin

../_images/gocoin.png

https://gocoin.com

自动贩卖机

达世币社区成员moocowmoo已经发布了代码,致力于帮助商家建立属于自己的自动售货机并使用即时发送功能接收顾客支付的款项。 Dashvend软件可用于创建任何类型的支付系统,其中包括支持即时发送功能的POS系统。

价格提示器

你可以利用这些代码为你的网站添加一个简单的价格小标签 code snippet generator from CoinGecko

除了上述应用和服务之外,CoinLib,WorldCoinIndexCryptonator上还提供了具备不同设计和类似功能的组件。此外,DashCentral也提供类似信息的应用程序接口。

二维码

很多钱包都能生成二维码,以便用户扫描和简化达世币地址的使用。打印二维码或将二维码公布在网站上可以简化二维码的线上和线下交易流程。

  • Dash Core钱包的用户可以打开 接收 选项卡,在必要的情况下生成地址,然后双击生成二维码。然后,右键单击二维码,并以PNG文件格式 保存图片
  • Android版达世币钱包的用户可以点击 申请付款 ,然后点击放大二维码,并截图保存。
  • iOS版达世币钱包的用户可以向左滑动,找到 接收达世币 页面。此时,页面上将显示二维码和达世币地址,用户就可以截图保存图像了。
  • 如需生成任何达世币地址的二维码,用户可以访问 CWA 二维码生成器 页面并复制粘贴地址,以便生成二维码的图像。