使用FISCO BCOS搭建第一个区块链节点网络

(建议使用ssh远程连接)

第一步 创建目录

使用 cd ~ && mkdir tools && cd tools 创建目录并进入到tools目录

第二步 下载脚本

使用下列代码进行脚本的下载

try https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/console/releases/v2.9.2/console.tar.gz

如果出现无法连接成功则使用下列代码

https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.11.0/build_chain.shcurl -#LOhttps://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.11.0/build_chain.sh && chmod u+x build_chain.sh

然后ls查看当前目录下是否下载成功 build_chain.sh

第三步 搭建单群组四节点联盟链

在tools目录下执行下面的指令,生成一条单群组4节点的FISCO链。 请确保机器的30300~30303,20200~20203,8545~8548端口没有被占用。

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545

命令解读:

bash - 执行脚本的命令 。

build_chain.sh -被执行脚本的名字

127.0.0.1:4 - 在当前主机上创建4个节点

-p选项指定起始端口,分别是p2p_port,channel_port,jsonrpc_port,后面慢慢了解这些端口

出现如图结果即为成功

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

第四步 启动FISCO BCOS 链

启动链

bash nodes/127.0.0.1/start_all.sh

启动成功会输出类似下面内容的响应。否则请使用netstat -an | grep tcp检查机器的30300~30303,20200~20203,8545~8548端口是否被占用。

第五步 配置及使用控制台

第一步 准备依赖

获取控制台并回到tools目录

cd ~/tools && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh

如果因为网络问题导致长时间无法下载,请尝试以下代码 

cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh

出现如图即为下载成功

拷贝控制台配置文件

# 最新版本控制台使用如下命令拷贝配置文件

cp -n console/conf/config-example.toml console/conf/config.toml

配置控制台证书

cp -r nodes/127.0.0.1/sdk/* console/conf/

第二步. 启动并使用控制台

启动

cd ~/tools/console && bash start.sh

出现如下图所示即为启动成功

第六步 部署及调用HelloWorld条约(调试非比赛必要)

第一步. 部署HelloWorld合约

为了方便用户快速体验,HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol,参考下面命令部署即可。

# 在控制台输入以下指令 部署成功则返回合约地址

deploy HelloWorld

如上图即为成功

# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址

红字部分改为上图红框中的地址

call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get

如图即为成功

调用set设置name

call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS"

再次调用HelloWorld条约查看是否成功

第七步 WeBASE-Front

下列操作都是在tools文件夹中进行

先拉取到本地 

wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip

解压webase-front

unzip webase-front.zip

拷贝节点sdk证书到webase-front/conf下

cp nodes/127.0.0.1/sdk/* webase-front/conf

进入webase-front文件夹

cd webase-front/

启动webase-front

bash start.sh

查看webase-front状态

bash status.sh

(但是这个is running 并不代表webase-front正确启动了)

查看webase-front进程

ps -ef |grep webase-front

查看webase-front日志检查是否正确启动

tail log/WeBASE-Front.log

出现了main run success 的话就代表webase-front正确启动了!!

(如果这里没有出现的话,有可能查的太早了,等3秒钟再查一下,如果还是没有,可能是节点没启动,sdk证书没拷贝,配置文件写错了等等的原因)

接着输入ip a 或者 ifconfig(ubuntu)查看网卡信息以获取自身虚拟机的局域网IP

找到如图中红框的ip地址

接着打开宿主机的浏览器,输入http://(刚才的IP):5002/WeBASE-Front ,来访问可视化页面

例如http://192.168.44.129:5002/WeBASE-Front

好的,你可以在SpringBoot中使用Web3j库来调用FISCO BCOS上的智能合约。以下是一些基本步骤: 1. 在pom.xml文件中添加Web3j依赖: ```xml <dependency> <groupId>org.web3j</groupId> <artifactId>core</artifactId> <version>4.8.1</version> </dependency> ``` 2. 在application.properties文件中配置FISCO BCOS节点信息: ``` web3j.client-address=http://localhost:8545 ``` 3. 创建一个智能合约的Java类,该类应该继承自org.web3j.abi.datatypes.Int类型,并在其中定义合约的方法。 ```java public class MyContract extends Contract { public MyContract(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { super("", contractAddress, web3j, credentials, gasPrice, gasLimit); } public RemoteCall<BigInteger> myMethod() { Function function = new Function( "myMethod", Collections.emptyList(), Collections.singletonList(new TypeReference<Uint256>() {}) ); return executeRemoteCallSingleValueReturn(function, BigInteger.class); } } ``` 4. 在SpringBoot中创建一个Controller类,用于处理请求。在该类中创建一个Web3j对象,然后使用该对象创建一个Credentials对象,该对象应该包含您的FISCO BCOS账户的私钥。接下来,创建一个MyContract对象,然后调用其方法。 ```java @RestController public class MyController { @GetMapping("/myMethod") public BigInteger myMethod() throws Exception { String privateKey = "..."; // FISCO BCOS账户的私钥 Web3j web3j = Web3j.build(new HttpService()); Credentials credentials = Credentials.create(privateKey); MyContract contract = MyContract.load("合约地址", web3j, credentials, new BigInteger("3000000"), new BigInteger("3000000")); return contract.myMethod().send(); } } ``` 这样,您就可以在SpringBoot中调用FISCO BCOS上的智能合约了。当您访问/myMethod时,将会调用MyContract的myMethod方法,并返回其结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值