智能合约开发过程

最近在学习智能合约开发,趁着刚刚完成一个合约的开发、web3j调用(Vue调用)和web3j调用(java调用)赶紧记录一下智能合约开发过程和注意要点。智能合约我用的开发语言是Solidity。

A基础安装

首先是基础环境的安装,如果是纯运行环境,如服务器,需要安装:
jdk
nodejs

如果是开发环境,除了运行环境,还需要安装VSCode、IDEA等必要的开发工具。

B安装顺序

1安装命令安装truffle

truffle是一个Solidity智能合约的编译部署的工具

npm install -g truffle

2安装ganache-cli命令行

安装ganache-cli用来做测试网络,没有测试网络开发不配置网络无法启动合约,因为默认是会连接本地:

npm install -g ganache-cli
安装后启动测试网命令:
ganache-cli -h 127.0.0.1 -p 7545

3在合约项目文件夹命令行执行合约编译部署


truffle compile
truffle migrate 或者 truffle deploy

完成之后,就启动了一次合约部署,下面就可以通过各种形式调用合约了,以下是命令行方式的调用:
truffle console
>let h=await hello.deployed()
>h.getRecord()
>h.setWallet('1',2')
>h.contains('1')

部署完的合约想要让其他应用(Vue、Java)调用,需要做的必要步骤,如我想让Java调用,需要做的事情:

编译abi文件,将sol输出为bin 和abi,后面工具会使用这俩源文件输出java代码
solcjs --bin --abi hello.sol -o ./

web3j客户端命令行将bin+abi输出为java代码,供java调用
web3j solidity generate --javaTypes hello_sol_hello.bin hello_sol_hello.abi -o ./  -p com.test

完成generate命令后会生成Hello_sol_hello.Java文件,这个就可以放到java工程调用了。

C启动合约调用的jar包

因为我是使用Java调用合约的,因此启动必要Java程序。

我就不贴Java调用的完整代码了,这里有个需要注意的点是,调用合约不是需要传入合约地址做参数么,以及需要初始化钱包信息,初始化钱包信息的时候,要确保钱包是有钱的,可以直接使用ganache提供的测试网络下的测试钱包账号秘钥来用。

D其他教程参考

web3js操作合约
https://www.qikegu.com/docs/5139#google_vignette

命令行与合约交互
https://learnblockchain.cn/docs/truffle/getting-started/interacting-with-your-contracts.html

合约部署命令行

https://learnblockchain.cn/docs/truffle/quickstart.html

前端通过web3js调用合约

https://cloud.tencent.com/developer/article/1905480

web3js与智能合约交互
https://www.qikegu.com/docs/5139

java与智能合约交互 
https://gitee.com/mirrors/web3j/tags?page=3

命令行与合约交互
https://learnblockchain.cn/docs/truffle/getting-started/interacting-with-your-contracts.html

安装truffle
https://learnblockchain.cn/docs/truffle/getting-started/installation.html

猜你喜欢

转载自blog.csdn.net/Stephanie_1/article/details/130152724