一、并行调度算法分类
根据对同一批交易调度产生的执行顺序是否随机,并行调度算法可分为:
随机性调度算法:即针对同一批交易调度产生的交易执行顺序是随机的,即使同一节点针对同一批交易连续运行两次调度算法产生的结果也可能不同。此类算法往往调度速度较快,其难点在于验证节点如何保证执行顺序与提案节点一致并得到相同的执行结果。因此,交易的执行顺序必须打包至区块中并由其他节点据此验证。
确定性调度算法:即针对同一批交易调度产生的交易执行顺序是确定的。此类算法的优点是交易执行顺序产生稳定且可复现,因此理论上讲交易执行顺序的信息可不包含在区块内,各验证节点运行并行调度算法即可进行校验。
二、ChainMaker SDK配置文件
chainmaker_sdk.yml配置文件如下:
注意:SDK配置文件中的路径请使用绝对路径。节点地址中的端口是ChainMaker的RPC端口。私钥和证书配置请按照spv或light模式的不同选择对应的私钥和证书路径。
chain_client:#链ID,chain_id:"chain1"#组织ID org_id:"wx-org1.chainmaker.org"#客户端用户私钥路径(如果是ChainMaker_SPV类型,此处请配置为Client私钥,如果是ChainMaker_Light类型,此处请配置为Light私钥,下面另外三项配置同理)user_key_file_path:"/release_path/config/chainmaker/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.key"#客户端用户证书路径user_crt_file_path:"/release_path/config/chainmaker/crypto-config/wx-
org1.chainmaker.org/user/client1/client1.tls.crt"#客户端用户交易签名私钥路径user_sign_key_file_path:"/release_path/config/chainmaker/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.key"#客户端用户交易签名证书路径user_sign_crt_file_path:"/release_path/config/chainmaker/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.crt"nodes:-#节点地址,格式为:IP:端口,端口是ChainMaker中的RPC端口
node_addr:"127.0.0.1:12301"#节点连接数conn_cnt:10#RPC连接是否启用双向TLS认证enable_tls:true#信任证书池路径trust_root_paths:-"/release_path/config/chainmaker/crypto-config/wx-org1.chainmaker.org/ca"-"/release_path/config/chainmaker/crypto-config/wx-org2.chainmaker.org/ca"#TLS hostname tls_host_name:"chainmaker.org"-#节点地址,格式为:IP:端口,端口是ChainMaker中的RPC端口
node_addr:"127.0.0.1:12302"#节点连接数conn_cnt:10#RPC连接是否启用双向TLS认证enable_tls:true#信任证书池路径trust_root_paths:-"/release_path/config/chainmaker/crypto-config/wx-org1.chainmaker.org/ca"-"/release_path/config/chainmaker/crypto-config/wx-org2.chainmaker.org/ca"#TLS hostname tls_host_name:"chainmaker.org"archive:#数据归档链外存储相关配置type:"mysql"dest:"root:123456:localhost:3306"secret_key:xxx rpc_client:#grpc客户端最大接受容量(MB)max_receive_message_size:32