最近正在肝区块链知识学习,入手学习智能合约的开发,由于网上资料实在是太少了,好不容易东拼西凑完成了智能合约的开发、编译、部署、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版代码
    • 客户单可以执行的操作
      • 合约的部署或加载已有合约,合约调用,读操作,写操作(写操作与读不同,需要关联有钱的钱包)
  • 开发命令

    • 创建合约

      • 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命令

区块链智能合约开发学习相关推荐

  1. Solana区块链智能合约开发简要流程

    Solana区块链智能合约开发简要流程 Solana区块链是当今市值第5的区块链,已经有很多知名生态准备部署在Solana上.相比于类以太坊(EVM)区块链来讲,Solana上智能合约开发(叫Prog ...

  2. 区块链开发语言python_Python:不同区块链智能合约开发语言的选择

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 在本文中,将介绍比特币.超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约的编程,并提供你进 ...

  3. 了区块链开放平台baas_区块链开放平台 BaaS 系统开发,区块链智能合约撰写服务...

    区块链开放平台 BaaS 系统开发,区块链智能合约撰写服务 什么是区块链即服务? 区块链即服务是一种独特的经济模型,允许消费者使用基于云的服务来开发,使用和托管其区块链应用,功能和智能合约.  源中瑞 ...

  4. 区块链 智能合约 简介

    根据谷歌趋势数据显示,目前,程序员对智能合约编程的兴趣已经处于历史最高水平,其中中国高居全球榜首,随着区块链技术的发展,相信日后智能合约将会与我们的生活密切相关,今天就为大家介绍一下什么是智能合约. ...

  5. 论述《区块链智能合约的合同效力认定》去中心化金融的钞能力赛道

    | 没有喧嚣,没有问候的"沉默",请安静听完这段征途故事! 摘要 智能合约是自动执行合同条款的代码协议,其以代码替代传统人为执行合同,本质上是运用代码"编译"传 ...

  6. 人工智能区块链智能合约_区块链和人工智能正在彻底改变这10个行业

    人工智能区块链智能合约 by Mariya Yao 姚iya(Mariya Yao) 区块链和人工智能正在彻底改变这10个行业 (Blockchain and AI are revolutionizi ...

  7. android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约

    本教程将展示如何直接从Android开发环境-Android Studio中调用智能合约. 环境要求 我们将使用Tezos区块链.为了使我们的Android java代码与现有的.部署的智能合约交互, ...

  8. [区块链安全-Ethernaut]区块链智能合约安全实战-已完结

    [区块链安全-Ethernaut]区块链智能合约安全实战-已完结 准备 0. Hello Ethernaut 准备工作 创建实例并分析 合约交互 总结 1. Fallback 创建实例并分析 合约交互 ...

  9. 10采用区块链智能合约管理智能城市房地产交易的概念框架

    原文标题: A conceptual framework for blockchain smart contract adoption to manage real estate deals in s ...

最新文章

  1. wpf控件开发基础(1)
  2. 细节决胜 盘点IBM x86平台虚拟化优势
  3. oracle:自定义函数
  4. buu [BJDCTF 2nd]燕言燕语-y1ng
  5. sealed、new、virtual、abstract与override 趣解
  6. wxWidgets:窗口删除
  7. vue的递归组件以及三级菜单的制作
  8. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
  9. 基于ARM Cortex-M0+ 的Bootloader 参考
  10. JavaWeb项目实战(2)安装JDK和Tomcat以及Eclipse构造开发环境
  11. java避免空指针异常
  12. MySQL数据库表分区功能详解
  13. 文本分类的14种算法
  14. c语言输入1显示good,求助 无论输入什么输出的结果是个0
  15. PS 将签名背景修改为透明色
  16. 微软ime日文输入法每次切换英文和假名输入状态时,画面中央总有图片提示,怎么消掉
  17. 安装 truffle (CentOS7 与 Windows)
  18. 【已解决】macbook软件卸载了图标还在launchpad上怎么办?一分钟搞定!
  19. 直播间小游戏,带货直播源码如何实现?
  20. 计算机中1 tb的硬盘容量大小等于,大脑记忆容量等于多大硬盘?

热门文章

  1. 【python安全攻防】python简易端口扫描器
  2. 挂牌、摘牌、停牌与复牌
  3. 金蝶mysql_金蝶财务软件如何导入新的数据库
  4. JS数据类型以及存储方式
  5. usee2008免费网络电视最新版下载
  6. 智慧社区AcrelCloud-3200预付费云平台
  7. 基于银行家算法的综述
  8. bos 获取数据库连接_IBOS文档中心
  9. uniapp项目中引入iconfont图标
  10. TerminateThread 导致LoadLibary 死锁