..
答复专利上的几个问题 [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