3

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

 3 years ago
source link: https://learnblockchain.cn/article/1968
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

极速实践

说明:

基于 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 文件夹

6BrYnaN.png!mobile

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/main/resources/conf

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

cp -r nodes/127.0.0.1/sdk/* asset-app/src/main/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

说明:

基于 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 文件夹

6BrYnaN.png!mobile

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/main/resources/conf

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

cp -r nodes/127.0.0.1/sdk/* asset-app/src/main/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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK