FISCO BCOS搭建多机区块链网络

我使用两台虚拟机,IP地址分别是192.168.217.132,192.168.217.128,每台配置一个节点。

1.生成区块链网络配置文件

#根据自己的机器IP填写

cat >> ipconf << EOF
192.168.217.132 agencyA 1
192.168.217.128 agencyA 1
EOF

2.基于配置文件生成区块链节点配置

bash build_chain.sh -f ipconf -p 30300,20200,8545

命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息。

至此,成功生成了多机4节点配置,每台机器的区块链节点配置均位于nodes文件夹下,如下:

 3.拷贝区块链节点配置

先为每台机器创建fisco目录

ssh fisco@196.168.0.1 "mkdir -p ~/fisco"

 

 拷贝节点配置

ssh zgxt@192.168.217.128 "mkdir -p ~/fisco"

 4.启动区块链节点

我使用192.168.217.132作为主机

bash nodes/192.168.217.132/start_all.sh

ssh zgxt@192.168.217.128 "bash ~/fisco/192.168.217.128/start_all.sh" 

 5.检查区块链节点

检查进程是否启动成功

ps aux | grep -v grep | grep fisco-bcos

 正常情况,每台机器都会有类似下面的输出:

 检查网络连接是否正常

tail -f 192.168.217.132/node0/log/* | grep -i connected

检查区块链共识是否正常

tail -f 192.168.217.132/node0/log/* | grep -i +++

 可以配置一下webase-front查看节点情况!

 Well done!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您解答关于在 SpringBoot 中调用 FISCO BCOS 合约的问题。 首先,您需要在项目中引入 FISCO BCOS 的 Java SDK 包,可以通过 Maven 或 Gradle 依赖来实现。然后,您需要创建一个合约的 Java 接口,该接口需要继承自 org.fisco.bcos.sdk.contract.Contract 接口,并定义您合约中的方法,如下所示: ```java public interface MyContract extends Contract { public RemoteCall<TransactionReceipt> myMethod(int param1, String param2); } ``` 在接口中,您需要定义您合约中的方法,方法的返回值类型需要使用 RemoteCall 包装,以便异步调用合约并获取合约返回结果。 接下来,您需要实现该接口,实现类需要继承自 org.fisco.bcos.sdk.contract.ContractImpl 类,并在构造函数中调用父类的构造函数,同时将合约地址、私钥、公钥等信息传递给父类,如下所示: ```java public class MyContractImpl extends ContractImpl implements MyContract { public MyContractImpl(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { super(contractAddress, web3j, credentials, gasPrice, gasLimit); } @Override public RemoteCall<TransactionReceipt> myMethod(int param1, String param2) { // 执行合约方法 return executeRemoteCallTransaction(FunctionEncoder.encode(function), gasPrice, gasLimit); } } ``` 在实现类中,您需要实现接口中定义的方法,并在方法中调用合约的方法。 最后,在您的 SpringBoot 应用程序中,您可以通过以下方式进行合约的调用: ```java @Autowired private Web3j web3j; @Autowired private Credentials credentials; public void callContract() { String contractAddress = "0x..."; // 合约地址 MyContract myContract = new MyContractImpl(contractAddress, web3j, credentials, gasPrice, gasLimit); RemoteCall<TransactionReceipt> remoteCall = myContract.myMethod(1, "test"); TransactionReceipt receipt = remoteCall.sendAsync().get(); // 处理合约返回结果 } ``` 在 SpringBoot 中,您可以通过注入 Web3j 和 Credentials 对象来连接 FISCO BCOS 区块链网络,并通过调用 MyContractImpl 类中定义的方法来调用合约。最后,您可以通过异步调用 RemoteCall 对象的 sendAsync 方法来执行合约方法,并获取合约返回结果。 希望这些信息对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值