FISCO BCOS Discussion

  • 关于pBFT和Raft的代码:

看起来是FISCO自己开发的:https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/libconsensus

  • 关于执行交易和达成共识的顺序:

先执行交易再达成共识:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/design/architecture/transaction_stream.html#id3

  • 关于确定互斥参数的细节

互斥参数的确定规则为:

接口访问了全局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