- 关于pBFT和Raft的代码:
看起来是FISCO自己开发的:https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/libconsensus
- 关于执行交易和达成共识的顺序:
- 关于确定互斥参数的细节
互斥参数的确定规则为:
接口访问了全局mapping,mapping的key是互斥参数
接口访问了全局数组,数组的下标是互斥参数
接口访问了简单类型的全局变量,所有简单类型的全局变量共用一个互斥参数,用不同的变量名作为互斥对象
例如:合约里有多个简单类型的全局变量,不同接口访问了不同的全局变量。如要将不同接口并行,则需要在修改了全局变量的接口参数中定义一个互斥参数,用来调用时指明使用了哪个全局变量。在调用时,主动给互斥参数传递相应修改的全局变量的“变量名”,用以标明此笔交易的互斥对象。如:setA(int x)函数中修改了全局参数globalA,则需要将setA函数定义为set(string aflag, int x), 在调用时,传入setA(“globalA”, 10),用变量名“globalA”来指明此交易的互斥对象是globalA。参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/transaction_parallel.html
- 关于可追溯性
StorageState不支持,不维护历史状态。参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/design/storage/storage.html#id6
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/design/storage/mpt.html#trade-off