FISCO BCOS可并行合约开发框架(附实操教程)
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
本专题系列文章追到现在,也许你会想问,FISCO BCOS的并行到底怎么用?作为专题的完结篇,本文就来揭晓“庐山真面目”,并教你上手使用FISCO BCOS的并行特性!FISCO BCOS提供了可并行合约开发框架,开发者按照框架规范编写的合约,能够被FISCO BCOS节点并行地执行。并行合约的优势有:
高吞吐:多笔独立交易同时被执行,能最大限度利用机器的CPU资源,从而拥有较高的TPS
可拓展:可以通过提高机器的配置来提升交易执行的性能,以支持不断扩大业务规模
接下来,我将介绍如何编写FISCO BCOS并行合约,以及如何部署和执行并行合约。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
此处给出更具体的定义:
判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空的交易可并行执行。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
互斥参数:合约接口中,与合约存储变量的“读/写”操作相关的参数。例如转账的接口transfer(X, Y),X和Y都是互斥参数。
互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。
判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空的交易可并行执行。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
内置数据表结构:为了满足复杂业务场景下数据类型多样化、业务数据可视化与可分析的需求,智能合约需要支持复杂的表结构数据组织形式。HVM 提供了内置数据结构 HyperTable,支持在合约内部按照表的形式组织业务数据,便于业务数据可视化以及后续的数据分析与价值挖掘。这种结构可以让原Solidity 语言中复杂嵌套的数据操作简单化,同时在性能方面,能有效解决序列化、反序列化造成的性能瓶颈,整体维护成本更低、使用更高效。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
NVP证书生成
对应生成证书的命令:
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
对应生成证书的命令:
certgen gk ./key.priv ./key.pub
certgen gc --cn node5 --nvp node1 --ct rcert --pub ./key.pub ./root1.ca ./root1.priv ./node5.cert
解释
--cn 后面参数代表本节点的hostname
--nvp 后面参数为NVP要绑定的VP节点的hostname
--ct 为证书类型,NVP为rcert,VP为ecert
--pub 后面跟需要申请证书节点的公钥的路径,可以是相对路径
./root1.ca 代表证书颁发者的根证书路径,可以是相对路径
./root1.priv 代表证书颁发者的根证书私钥路径,可以是相对路径
./node5.cert 代表要生成的证书的名称
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
节点连接
VP和NVP节点互相连接方式一共有四种,选择任意一种方式都可以完成NVP和VP的连接,下文将详细介绍每种连接方式。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
对于NVP节点来说,若其未连接任何VP节点,也能正常工作,但不能转发交易,不能同步新数据。当要与VP节点连接时,NVP节点需要提前准备和VP相连的证书文件,还需要进行相应的配置:
NVP作为独立节点启动,需要在NVP节点的 configuration/dynamic.toml 文件中 修改self节点名称、port端口、域配置。
注意: NVP的配置信息不能和VP节点的配置信息重复
在NVP节点的 configuration/global/ns_dynamic.toml 文件 修改[self]信息, 具体的配置根据不同的连接方式略有不同,在下面详细介绍。
配置完成之后,可以通过 start.sh 脚本或 ./hyperchain 来启动节点。由于VP和NVP可以动态地建立连接,因此无须同时启动。
VP和NVP节点互相连接方式一共有四种,选择任意一种方式都可以完成NVP和VP的连接,下文将详细介绍每种连接方式。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
在VP上配置NVP
如果要在VP启动时能够自动去连接指定的NVP,需要在VP节点的 configuration/global/ns_dynamic.toml 文件做相应修改。在四个VP节点启动并相互连接的场景下,增加两个与node1相连接的NVP需要修改的配置项如下所示:
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
如果要在VP启动时能够自动去连接指定的NVP,需要在VP节点的 configuration/global/ns_dynamic.toml 文件做相应修改。在四个VP节点启动并相互连接的场景下,增加两个与node1相连接的NVP需要修改的配置项如下所示:
[[nvps]] # 运行时修改。nvps数组在节点运行过程中实时变化。
hostname = "nvp1" # nvp节点的名称
score = 10 # 默认为10,表示节点的优先级
[[nvps]] # 运行时修改。nvps数组在节点运行过程中实时变化。
hostname = "nvp2" # nvp节点的名称
score = 10 # 默认为10,表示节点的优先级
[p2p]
[p2p.ip]
[p2p.ip.remote]
hosts = [
"node1 127.0.0.1:50011",
"node2 127.0.0.1:50012",
"node3 127.0.0.1:50013",
"node4 127.0.0.1:50014",
"nvp1 127.0.0.1:50215",
"nvp2 127.0.0.1:50216",
]
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
在NVP上配置VP
同理,在NVP节点启动前需要指定连接的VP,先按照部署文档进行必要的地址端口修改,然后在NVP节点的 configuration/global/ns_dynamic.toml 文件做相应修改。 NVP只能连接一个VP ,需要修改的配置项如下:
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
同理,在NVP节点启动前需要指定连接的VP,先按照部署文档进行必要的地址端口修改,然后在NVP节点的 configuration/global/ns_dynamic.toml 文件做相应修改。 NVP只能连接一个VP ,需要修改的配置项如下:
[[nodes]] # 运行时修改。nodes数组记录vp节点信息
# 在节点运行过程中实时变化。
hostname = "node1" # vp节点的名称
score = 10 #节点的优先级,默认为10
[p2p]
[p2p.ip]
[p2p.ip.remote]
# hosts里面需要配置nvp连接的vp的节点名称和ip地址
hosts = ["node1 127.0.0.1:50011"]
[self]
hostname = "nvp1" # nvp节点的名称
n = 1 # 连接的vp数量(0或者1)
type = "nvp" # 节点类型
[[nodes]]字段,只添加与NVP节点连接的VP节点信息;
[p2p]字段,同时配置VP的节点名称和ip地址;
[self]字段,修改对应的NVP信息;
hostname为NVP节点的名称;
n表示要连接的VP数量为1(NVP上n的数值<=1);
type字段用来记录节点的类型为NVP;
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544