..

答复专利上的几个问题 [update]

1) 广播的交易包括hash吗?
答:把交易的数据原封不动的广播到有效节点,伪代码如下

MESSAGE_Transaction tx; 
Serializer s;
add (s);
tx.set_raw_tx (&s.getData);
tx.set_receive_timestamp (timestamp);

net::foreach_send(peers, (tx, TRANSACTION));

2) 交易数据什么时候写入数据库呢?
答: 账本关闭的时候,交易及账本头一起写数据库。 伪代码如下

bool Ledger::saveValidatedLedger (bool current)
{
	write(txn);
	write(ledger);
}

3) 具体使用了国密的哪些算法?
答: 系统中用到的有摘要算法 sm3 和 椭圆曲线算法 sm2,分别用在账本及交易hash的生成和交易数据的签名验签。 相关接口

sm3()
SM2_sign() / SM2_verify()

4) 除了国密,系统还有其他加密算法吗?
答: 有。 比如 ECDSA 算法,curve 为 secp256k1


5)每笔交易都会写入账本吗?
答: 不是。 在去中心化的分布式系统中,每一笔交易是否入账都需要通过pbft算法共识,超过2/3的节点通过后,才可以写入。


6)这样能保证每个节点的交易数据一致?
答: 可以, 参考上个问题的pbft共识部分内容。


7)通过api查询后的数据,是怎么返回到应用层的?
答: 通过 websocket 协议请求的api,有一个回调函数,结果会返回到里面。


8)可插拔虚拟机接口,需要有物理属性的吗?
答: 不是,这里指一种API的抽象。


9)账本中父hash的作用是什么?
答: 区块链的账本是一个链式的数据结构,通过父hash来指向上一个账本,创世账本是没有父hash的,后续的都存在。


Nothing