3. 【实验】补全一个区块链应用

极速实践

说明:

基于 FISCO BCOS 官方制定的 Asset 应用例子制定实操实验。

例子:

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/sdk_application.html

提供的需补全的例子:

https://gitee.com/leeduckgo/asset-example-lacked-sth/

完成步骤:

1)下载代码

git clone https://gitee.com/leeduckgo/asset-example-lacked-sth.git

2)补全合约

补全Asset.sol中的 TODO 部分。

3)在 FISCO BCOS 的contract文件夹中创建asset文件夹

image20201229141624151.png

3)通过控制台工具将合约转换为.java

./sol2java.sh org.fisco.bcos.asset.contract contracts/solidity/asset

4)将生成的包含java文件的contract目录拷贝到 asset-app 中的相应位置

console/contracts/sdk/java/org/fisco/bcos/asset/contract

拷贝到

|-- build.gradle // gradle配置文件
|-- gradle
|   |-- wrapper
|       |-- gradle-wrapper.jar // 用于下载Gradle的相关代码实现
|       |-- gradle-wrapper.properties // wrapper所使用的配置信息,比如gradle的版本等信息
|-- gradlew // Linux或者Unix下用于执行wrapper命令的Shell脚本
|-- gradlew.bat // Windows下用于执行wrapper命令的批处理脚本
|-- src
|   |-- main
|   |   |-- java
|   |         |-- org
|   |             |-- fisco
|   |                   |-- bcos
|   |                         |-- asset
|   |                               |-- client // 放置客户端调用类
|   |                                      |-- AssetClient.java
|   |                               |-- 【拷贝到此处】
|   |                                      
|   |-- test
|       |-- resources // 存放代码资源文件
|           |-- applicationContext.xml // 项目配置文件
|           |-- contract.properties // 存储部署合约地址的文件
|           |-- log4j.properties // 日志配置文件
|           |-- contract //存放solidity约文件
|                   |-- Asset.sol
|                   |-- Table.sol
|
|-- tool
    |-- asset_run.sh // 项目运行脚本

5)创建放置证书的文件夹

mkdir -p asset-app/src/test/resources/conf

6)将节点证书拷贝到resources路径

cp -r nodes/127.0.0.1/sdk/* asset-app/src/test/resources/conf

7)编译项目

可以通过gradlegradlew两种方式。

gradle方式:

gradle build

gradlew方式:

./gradlew build

8)运行!

进入dist目录:

cd dist

运行:

  • 部署Asset.sol合约
# 确保脚本权限
$ chmod u+x *.sh
$ bash asset_run.sh deploy
Deploy Asset successfully, contract address is 0xd09ad04220e40bb8666e885730c8c460091a4775
  • 注册资产
$ bash asset_run.sh register Alice 100000
Register account successfully => account: Alice, value: 100000
$ bash asset_run.sh register Bob 100000
Register account successfully => account: Bob, value: 100000
  • 查询资产
$ bash asset_run.sh query Alice
account Alice, value 100000
$ bash asset_run.sh query Bob
account Bob, value 100000
  • 资产转移
$ bash asset_run.sh transfer Alice Bob  50000
Transfer successfully => from_account: Alice, to_account: Bob, amount: 50000
$ bash asset_run.sh query Alice
account Alice, value 50000
$ bash asset_run.sh query Bob
account Bob, value 150000

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
李大狗
李大狗

上海对外经贸大学区块链研究中心副主任

33 篇文章, 5265 学分