一、wsl(windows子系统)安装步骤

wsl(windows子系统)简要介绍和安装步骤_Once_day的博客-CSDN博客_wsl

1、自动安装命令

管理员身份打开CMD,输入wsl –install。用时很长特别是安装Ubuntu时,可以参考上面博客自行安装。可以在那一步退出,然后到应用商店安装。完成后重启即可。

wsl --install

在未安装WSL的机器上,该命令可完成自动安装的全部过程:

  • 启动所需的windows组件和功能
  • 下载最新的linux内核
  • 将WSL2设置为默认值
  • 安装LIunx发行版—–Ubuntu。

二、搭建FISCO BCOS

搭建第一个区块链网络 — FISCO BCOS v3.0.0-rc4 文档

q1:安装到控制台运行依赖java环境(推荐使用java 14)报错:

解决办法:

sudo apt-get update

8.12之后该 3、部署和调用合约


8.19直接重新启动控制台报错

因为链还没有启动,需要回到第四步. 启动FISCO BCOS链,然后再打开控制台。


over****************************************************************************************************end

三、开发第一个区块链应用(一定要看清网络是哪个版本,2&3不兼容!!!!!!)

开发第一个区块链应用 — FISCO BCOS v2.9.0 文档×

开发第一个Solidity区块链应用 — FISCO BCOS v3 v3.0.0 文档 √

Asset.sol这个智能合约在搭建搭建第一个区块链网络的时候已经写好了在

~/fisco/console/contracts/solidity路径下,所以需要直接到编译这一步,但是输入下面命令行
# 若控制台版本大于等于2.8.0,编译合约方法如下:(可通过bash sol2java.sh -h命令查看该脚本使用方法)bash sol2java.sh -p org.fisco.bcos.asset.contract

报错:

大概因为控制台版本问题吧,需要把上一步的

# 下载控制台cd ~/fisco && curl -#LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.1/download_console.sh && bash download_console.sh

再执行一遍,这个时候~/fisco/console路径下就会有了sol2java.sh*文件。

编译之后查看console/contracts/sdk目录生成java、abi和bin目录

Asset.sol智能合约没有编译成功,报错如下

可能原来自带的Asset.sol内容,版本什么的有问题,所以就直接把原来的文件跟文档提供的替换一下,然后再编译就通过了。

pragma solidity ^0.4.24;import "./Table.sol";contract Asset {// eventevent RegisterEvent(int256 ret, string account, uint256 asset_value);event TransferEvent(int256 ret, string from_account, string to_account, uint256 amount);constructor() public {// 构造函数中创建t_asset表createTable();}function createTable() private {TableFactory tf = TableFactory(0x1001);// 资产管理表, key : account, field : asset_value// |资产账户(主键)| 资产金额 |// |-------------------- |-------------------|// |account|asset_value|// |---------------------|-------------------|//// 创建表tf.createTable("t_asset", "account", "asset_value");}function openTable() private returns(Table) {TableFactory tf = TableFactory(0x1001);Table table = tf.openTable("t_asset");return table;}/*描述 : 根据资产账户查询资产金额参数 :account : 资产账户返回值:参数一: 成功返回0, 账户不存在返回-1参数二: 第一个参数为0时有效,资产金额*/function select(string account) public constant returns(int256, uint256) {// 打开表Table table = openTable();// 查询Entries entries = table.select(account, table.newCondition());uint256 asset_value = 0;if (0 == uint256(entries.size())) {return (-1, asset_value);} else {Entry entry = entries.get(0);return (0, uint256(entry.getInt("asset_value")));}}/*描述 : 资产注册参数 :account : 资产账户amount: 资产金额返回值:0资产注册成功-1 资产账户已存在-2 其他错误*/function register(string account, uint256 asset_value) public returns(int256){int256 ret_code = 0;int256 ret= 0;uint256 temp_asset_value = 0;// 查询账户是否存在(ret, temp_asset_value) = select(account);if(ret != 0) {Table table = openTable();Entry entry = table.newEntry();entry.set("account", account);entry.set("asset_value", int256(asset_value));// 插入int count = table.insert(account, entry);if (count == 1) {// 成功ret_code = 0;} else {// 失败" />

8.19编译完成之后该该4步创建区块链应用项目