透明锻造

From Nxt Wiki
Jump to: navigation, search
This page is a translated version of the page Transparent Forging and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎italiano • ‎português do Brasil • ‎Ελληνικά • ‎русский • ‎українська • ‎中文 • ‎中文(简体)‎

1 描述

“透明锻造”允许每个客户端自动确定谁将生成下个区块,所以可以直接把交易发给那个节点。这也允许支付额外的小费为了即时或优先交易。

透明锻造另一个同等重要的特点是出色的安全性,协议将应该生成下个区块却没有的账户的锻造算力暂时降为零。透明锻造功能防止持有全部Nxt90%的帐户进行恶意分叉。所以如果一个账户拥有90%的Nxt但没有按要求生成区块,系统将把其锻造算力暂时降为零以防止强制恶意分叉。

阅读 Come-from-Beyond's description of Transparent Forging on the Bitcointalk.org forum.

2 在一个客户端实施透明锻造,使用Nxt API

(来源: Come-from-Beyond)

  1. http://localhost:7876/nxt?requestType=getState 得到最近的区块号
  2. http://localhost:7876/nxt?requestType=getBlock&block=10621696942372068326 (假设10621696942372068326是最近的区块号)
  3. 将"generationSignature"转化为二进制,通过getAccountPublicKey附加公钥字节
  4. 计算 SHA256 (generationSignature, publicKey)
  5. 这个值的前8个字节,写作低字节序的无符号长整型(unsigned long in little-endian),作为"HIT"值
  6. “基本目标值”(baseTarget)乘以账户有效余额,得到STATIC_TARGET
  7. 对所有在线账户重复第3步到第6步,找到HIT/STATIC_TARGET的最小值,这个账户将锻造下个区块

3 常见问题解答

有关透明锻造问题在FAQ的锻造部分.

4 上线时间

从30000区块开始实现此功能,也就是客户端0.4.8版本开始。到目前为止,透明锻造还没有全部实现。