以太坊框架truffle介绍

姜信宝BobJiang 2023-01-12 22:31:48

课时名称课时知识点
以太坊框架truffle介绍
...全文
74 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
以太坊智能合约开发环境及总结 今年上半年开始接触基于区块链的以太坊智能合约编程。由于⽹络现有资料⼤多使⽤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

2

社区成员

发帖
与我相关
我的任务
社区描述
姜信宝 (Bob Jiang) 中国北方第一位CST(Certified Scrum Trainer) 国内知名电商资深敏捷教练、金牌讲师 Certified LeSS Practitioner,《Scrum精髓》译者 15年以上的软件开发和项目管理经验,多年不同行业的敏捷转型培训与辅导的经验(传统通讯行业、电商行业、保险行业、银行等)。曾经服务过的客户有GE医疗、HP、诺基亚、爱立信、中国移动研究院、京东、海尔、徽商银行、花旗银行等 敏捷一千零一夜Agile1001(http://agile1001.org)的联合发起人 博客 http://bobjiang.com
社区管理员
  • 姜信宝BobJiang
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧