区块链智能合约开发学习
最近正在肝区块链知识学习,入手学习智能合约的开发,由于网上资料实在是太少了,好不容易东拼西凑完成了智能合约的开发、编译、部署、web3js调用(网页页面)和web3j调用(java调用),赶紧趁热把重点提炼出来。
先上图,是我最近学习知识点的一个概括总结,此外还包含了关键命令和操作步骤。
我智能合约开发的技术选型是Solidity+web3j+Java,工具选型是VSCode+solcjs+web3js+web3j+Ganache
开发智能合约的关键步骤:
开发语言
- 90.4%用Solidity,7.2%用Vyper其他小众语言可忽略,因此开发智能合约主流选用Solidity,这也是我学习语言
合约开发环境必备
- nodejs(其他所有前置)
- vscode
- vscode的Solidity插件
- ganache的appx或ganache-cli
- 提供测试网络,部署合约必要
- vscode的solcjs插件,用于命令行将.sol编译出.abi和.bin,web3j前一步必要动作,输出后的俩文件使用web3j生成.java
- web3j工具(.bat执行一次即可,用于生成java可以调用的合约代码)
- web3j此外还可以创建钱包,执行web3j create 命令按帮助指引
- truffle(npm安装,用于编译运行智能合约)
- metamask的chrome浏览器插件,用于浏览器钱包功能,当web客户端“写操作”时需调用有钱钱包
客户端准备
- web客户端(Vue项目)
- web3.js脚本引用,用于提供web3访问接口
- abi.js存放合约abi内容,用于提供合约接口
- java客户端(SpringBoot或其他后台项目)
- pom依赖引用:org.web3j,junit
- XX.java合约java版代码
- 客户单可以执行的操作
- 合约的部署或加载已有合约,合约调用,读操作,写操作(写操作与读不同,需要关联有钱的钱包)
- web客户端(Vue项目)
开发命令
- 创建合约
- VSCODE命令行:在工程空目录当前执行truffle init,即可初始化项目应有文件夹目录
- VSCODE命令行:truffle create contract hello,创建一个hello.sol的合约文件
- 编译
- VSCODE命令行:truffle compile
- 部署
- VSCODE命令行:truffle migrate
- 访问合约
- 命令行方式:VSCODE命令行:truffle consolelet h=await hello.deployed()h.sayHello()h.addRecord("hh")h.getRecord()
- java后端方式
- 在vscode控制台.sol所在目录执行:solcjs --bin --abi hello.sol -o ./
- 在sol所在目录打开cmd,执行(执行前本目录会有.bin和.abi两个文件)web3j solidity generate --javaTypes hello_sol_hello.bin hello_sol_hello.abi -o ./ -p com.test
- 将sol同目录的java代码拷贝到java工程中即可进行合约调用
- 初始化代码:配置好合约地址contract address和钱包秘钥(钱包秘钥用ganache中提供的测试账号小钥匙秘钥串即可用)
- vue前端方式
- 引用文件web3.js,abi.js(abi.js内容为合约abi内容是一个json文本段)
- 添加包web3
- 创建合约
环境安装命令
- truffle
- npm install -g truffle
- web3j
- 运行web3j.bat文件后命令行可跑 web3j XXX命令
- truffle
区块链智能合约开发学习相关推荐
- Solana区块链智能合约开发简要流程
Solana区块链智能合约开发简要流程 Solana区块链是当今市值第5的区块链,已经有很多知名生态准备部署在Solana上.相比于类以太坊(EVM)区块链来讲,Solana上智能合约开发(叫Prog ...
- 区块链开发语言python_Python:不同区块链智能合约开发语言的选择
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 在本文中,将介绍比特币.超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约的编程,并提供你进 ...
- 了区块链开放平台baas_区块链开放平台 BaaS 系统开发,区块链智能合约撰写服务...
区块链开放平台 BaaS 系统开发,区块链智能合约撰写服务 什么是区块链即服务? 区块链即服务是一种独特的经济模型,允许消费者使用基于云的服务来开发,使用和托管其区块链应用,功能和智能合约. 源中瑞 ...
- 区块链 智能合约 简介
根据谷歌趋势数据显示,目前,程序员对智能合约编程的兴趣已经处于历史最高水平,其中中国高居全球榜首,随着区块链技术的发展,相信日后智能合约将会与我们的生活密切相关,今天就为大家介绍一下什么是智能合约. ...
- 论述《区块链智能合约的合同效力认定》去中心化金融的钞能力赛道
| 没有喧嚣,没有问候的"沉默",请安静听完这段征途故事! 摘要 智能合约是自动执行合同条款的代码协议,其以代码替代传统人为执行合同,本质上是运用代码"编译"传 ...
- 人工智能区块链智能合约_区块链和人工智能正在彻底改变这10个行业
人工智能区块链智能合约 by Mariya Yao 姚iya(Mariya Yao) 区块链和人工智能正在彻底改变这10个行业 (Blockchain and AI are revolutionizi ...
- android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约
本教程将展示如何直接从Android开发环境-Android Studio中调用智能合约. 环境要求 我们将使用Tezos区块链.为了使我们的Android java代码与现有的.部署的智能合约交互, ...
- [区块链安全-Ethernaut]区块链智能合约安全实战-已完结
[区块链安全-Ethernaut]区块链智能合约安全实战-已完结 准备 0. Hello Ethernaut 准备工作 创建实例并分析 合约交互 总结 1. Fallback 创建实例并分析 合约交互 ...
- 10采用区块链智能合约管理智能城市房地产交易的概念框架
原文标题: A conceptual framework for blockchain smart contract adoption to manage real estate deals in s ...
最新文章
- wpf控件开发基础(1)
- 细节决胜 盘点IBM x86平台虚拟化优势
- oracle:自定义函数
- buu [BJDCTF 2nd]燕言燕语-y1ng
- sealed、new、virtual、abstract与override 趣解
- wxWidgets:窗口删除
- vue的递归组件以及三级菜单的制作
- MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
- 基于ARM Cortex-M0+ 的Bootloader 参考
- JavaWeb项目实战(2)安装JDK和Tomcat以及Eclipse构造开发环境
- java避免空指针异常
- MySQL数据库表分区功能详解
- 文本分类的14种算法
- c语言输入1显示good,求助 无论输入什么输出的结果是个0
- PS 将签名背景修改为透明色
- 微软ime日文输入法每次切换英文和假名输入状态时,画面中央总有图片提示,怎么消掉
- 安装 truffle (CentOS7 与 Windows)
- 【已解决】macbook软件卸载了图标还在launchpad上怎么办?一分钟搞定!
- 直播间小游戏,带货直播源码如何实现?
- 计算机中1 tb的硬盘容量大小等于,大脑记忆容量等于多大硬盘?