以太坊智能合约开发环境及总结.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
以太坊智能合约开发环境及总结 今年上半年开始接触基于区块链的以太坊智能合约编程。由于⽹络现有资料⼤多使⽤truffle2.0框架,⽽更新的truffle3.0在使⽤习惯上有 较⼤改动,很多教程已经不太适合新⼿使⽤。这⾥在吸收了部分⽹络资源,及多次⾃我尝试后,较为详细总结了linux系统下利⽤ truffle3.0+testrpc完成以太坊智能合约+DApp开发⽤到的环境搭建过程,并归纳了开发过程中遇到的⼀些问题及解决⽅案,合约编程语 ⾔为solidity。 环境搭建 (打开终端:同时按住Ctrl + Alt + T键) 1.安装git sudo apt-get install git * 如果在安装git时出现E:Package 'git' has no installation candidate错误提⽰,即可使⽤:sudo apt-get install git-core * git --version 查看是否安装成功 2.安装nodejs sudo apt-get install curl sudo apt-get install -y nodejs * nodejs -v 查看是否安装成功 3.安装solc和solc-cli sudo npm install -g solc solc-cli --save-dev * solcjs --help查看是否安装成功 4.安装solc⼆进制包(使⽤geth要⽤到) sudo add-apt-repository ppa:ethereum/ethereum sudo apt-get update sudo apt-get install solc 4.1 建⽴软链接(可不⽤) 5.安装testrpc sudo npm install -g ethereumjs-testrpc * testrpc安装失败,找不到script,解决⽅法可参考 * testrpc 查看是否安装成功 6.安装truffle3.0 sudo npm install -g truffle * truffle version 查看是否安装成功 7.安装Geth sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum Truffle3.0使⽤教程(按顺序) 窗⼝1: mkdir myproject 新建⼦⽬录 cd myproject truffle init webpack初始化项⽬ truffle compile 编译 窗⼝2: testrpc 启动testrpc 窗⼝1: truffle migrate (truffle2.0以上)部署项⽬ npm run build truffle serve 启动服务 窗⼝3: *运⾏多次时可能报错,将后两个指令改为npm run dev 项⽬⽂档说明 app/:存放前端javascript⽂件和stylesheets⽂件,在开发Dapps时使⽤; contracts/:智能合约⽂件的存放⽬录; migrations/:存放部署脚本; test/:存放智能合约测试⽂件 DApp开发总结(truffle3.0) 1.对于⼀个不会改写区块链状态的f()函数,使⽤instance.f.call();⽽对于⼀个会改写区块链状态的函数f(),使⽤instance.f()。底层在实 现调⽤上,会使⽤不同gas计算⽅式。 2.报错invalid address 原因:未设置默认账户地址 解决⽅案: Test.defaults({ from : "0x299127d72e28cb92d09f856aaedeb139d1e7e74a" }); *Test是合约初始化变量 3.合约交互抽象层语法 MyContract.setProvider(someWeb3Provider); MyContract.deployed().then(function(instance) { return instance.someFunction(); }).then(function(result) { }); 4.DApp界⾯读写数据 4.1 整型 var test = parseInt(document.getElementById("test").value); meta.write(test); meta.read.call().then(function(value) { var value_element = document.getElementByI 以太坊智能合约开发环境的搭建是开发基于区块链应用的基础步骤。本文主要针对Linux系统下,使用Truffle 3.0框架与TestRPC进行以太坊智能合约开发的环境配置进行了详细总结。以下是对这些知识点的详细解释: 安装Git,它是版本控制系统,对于项目协作和代码管理至关重要。如果在安装时遇到问题,可以尝试安装git-core作为替代。通过`git --version`检查安装是否成功。 接着,安装Node.js,它是JavaScript运行环境,用于执行JavaScript代码。`nodejs -v`命令用于验证安装。安装完成后,需要安装Solidity编译器solc和solc-cli,它们是Solidity合约的编译工具,使用`npm`命令全局安装。通过`solcjs --help`或`solc --help`来确认安装。 然后,添加Ethereum PPA并安装solc二进制包,这是Geth(以太坊客户端)需要的。在某些情况下,可能需要创建软链接。TestRPC是模拟以太坊网络的轻量级工具,方便开发者测试智能合约。如果遇到安装问题,可以查找解决方案。同样,用`testrpc`命令确认安装。 Truffle是智能合约开发框架,负责编译、部署和测试合约。使用`npm`全局安装后,通过`truffle version`检查版本。安装Geth以获取完整的以太坊节点功能。 在Truffle 3.0中,开发流程主要包括新建项目、初始化、编译合约、启动TestRPC、部署合约和启动服务。每个步骤都有相应的命令行操作。例如,`truffle init`用于初始化项目结构,`truffle compile`编译合约,`testrpc`启动TestRPC,`truffle migrate`部署合约,`npm run build`和`truffle serve`则用于构建和启动DApp服务。 在DApp开发中,总结了几个关键点: 1. 对于只读操作,使用`instance.f.call()`,而有状态改变的操作则使用`instance.f()`。这涉及到以太坊交易的gas计算方式。 2. 当遇到`invalid address`错误时,通常是由于未设置默认账户地址。可以使用合约实例的`.defaults()`方法设置默认账户。 3. 而在合约交互时,通常涉及合约的提供者设置和异步调用。例如,`MyContract.setProvider(someWeb3Provider)`设置提供者,然后通过`deployed().then()`方法调用合约函数。 4. DApp界面的数据读写,这里提到的是读取整型数据。例如,通过`document.getElementById("test").value`获取表单值,然后使用智能合约接口进行写入和读取操作。 搭建以太坊智能合约开发环境涉及多个组件的安装和配置,理解Truffle框架和TestRPC的工作原理对开发DApps至关重要。同时,熟悉Solidity编程语言和以太坊网络特性也是必不可少的。在实际开发中,应根据项目需求和最新技术动态进行调整和学习。
- gongjiming1234562023-06-30内容与描述一致,超赞的资源,值得借鉴的内容很多,支持!
- 粉丝: 195
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 哈夫曼树优化算法解析及其在数据压缩中的应用
- 山东科技大学网络安全期末复习整理
- Java项目:足球俱乐部管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
- CodeServer Docker镜像-4.90.2
- 智学领航:基于 SSM 与 JSP 的课程辅导网站设计与实践之路
- 小米bios备份TM1701
- starccm+电池包热管理-新能源汽车电池包共轭传热仿真-电池包热管理 可学习模型如何搭建,几何清理网格划分,学习重要分析参数如何设置 内容: 0.电池包热管理基础知识讲解,电芯发热机理,电池热管
- Java项目:足球俱乐部管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
- SSM 架构下 JSP 赋能课程案例库平台构建与突破
- 基于模型参考自适应控制的 SPMSM 无感矢量控制的MATLAB simulink仿真 速度控制 低速I F控制,中高速采用模型参考自适应的无感矢量控制 效果不错 供研究使用 可提供相关文
- 2023-12-20 15-49-23.mov
- Java项目:足球俱乐部管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
- 2头文件bt记事本str.txt
- 企业档案管理信息系统的设计与实现_4n059950--论文.zip
- 流浪猫狗救助系统_5j95n244.zip
- MATLAB simulink 仿真: 基于popov理论和模型参考自适应理论,辨识永磁同步电机参数(SPMSM)simulink 仿真 可提供算法的相关文献,供研究使用 MATLAB versi