二维码

8.4.10 truffle的创建管线 - 数据结构 - 机器学习

1387 人阅读 | 时间:2021年01月15日 01:11
8.4.10 truffle的创建管线 - 数据结构 - 机器学习 #daohang ul li t,.reed .riqi,a.shangg,a.xiatt,a.shangg:hover,a.xiatt:hover,a.shang,a.xiat,a.shang:hover,a.xiat:hover,.reed-pinglun-anniu,span.now-page,#daohangs-around,#caidan-tubiao,#daohangs,#daohangs li,#btnPost{background-color:#D10B04;} .dinglanyou1 h3{border-bottom:3px solid #D10B04;} #dibuer{border-top:2px solid #D10B04;}.cebianlan .rongqi h3{border-bottom:1px solid #D10B04;} #edtSearch{border:1px solid #D10B04;} #daohang .zuo ul li{border-right:1px solid #;} #daohang ul li t a{border-top:1px solid #;border-right:1px solid #D10B04;} #daohang ul li t a:hover{border-right:1px solid #;} #daohang .you ul li a:hover,#daohang .zuo ul li a:hover,.reed-pinglun-anniu:hover{background-color:#;} a:hover,.reed h6 a:hover,#dibuer a:hover,.reed .riqiding,.cebianlan .rongqi li a:hover,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.shu a,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.huifuliuyan a:hover,.reed-biaoti h6 span{color:#D10B04;} .reed .kan a{color:#0A0AF5;}.reed .kan a:hover{color:#D10101;} @media screen and (max-width:1492px){a.shang,a.xiat{background:none;} a.xiat:hover,a.shang:hover{background-color:#f9f9f9;background-image:none;text-decoration:none;}} var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2d748c9763cfc72fb7d1ccab29f0770d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f6d451f3f1be23f3abf240c64c469c1b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

当前位置:首页 » 区块链精品文章 » 正文

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646201", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646162", container: s }); })();

8.4.10 truffle的创建管线

1117 人参与  2018年09月15日 10:06  分类 : 区块链精品文章  评论

介绍了用truffle编译、部署和测试智能合约的方法之后,现在来为altcoin创建一个客户端了。在了解如何用 truffle创建客户端之前,需要知道,不允许我们使用在以太坊节点之外存储的账户签署交易,也就是说,它没有类似于 sendRawTransaction的东西,理由与truffle-contract的理由相同。

用truffle创建客户端意味着首先在客户端源代码中整合truffle的artifact,然后让客户端的源代码做好部署准备。

创建客户端需要运行如下命令:

8.4.10 truffle的创建管线 - 数据结构 - 机器学习

执行这条命令时,truffle将检查如何通过检测项目配置文件中的build属性创建客户端。

1.运行外部命令

可以用命令行工具创建客户端。如果build属性是一个字符串,truffle就假定想运行一个命令去创建客户端,所以它把该字符串当作一个命令运行。给该命令提供足够环境变量,用这些变量与truffle整合。

可以让truffle运行一个命令行工具,以创建使用类似配置代码的客户端:

8.4.10 truffle的创建管线 - 数据结构 - 机器学习

2.运行自定义函数

可以用一个JavaScript函数创建客户端。如果build属性是一个函数,只要想创建客户端,truffle就会运行该函数。给该函数提供大量关于项目的信息,用这些信息与truffle整合。

可以让truffle运行一个函数,以创建使用类似配置代码的客户端:

8.4.10 truffle的创建管线 - 数据结构 - 机器学习

还可以创建一个对象,其中包含一个和这里类似的创建方法。这对于想发布一个包来创建客户端的人来说实在太棒了!

3.truffle的默认构建器

truffle提供了truffle-default-builder npm包——在truffle中称为默认构建器(default builder)。该构建器导出一个对象,该对象有一个build方法,它的工作方式与之前提到的方法完全一样。

默认构建器可用于为DApp创建一个网络客户端,其服务端只服务于静态文件,所有功能都在前端。

在进一步了解如何使用默认构建器之前,首先用如下命令进行安装:

8.4.10 truffle的创建管线 - 数据结构 - 机器学习

现将配置文件修改如下:

8.4.10 truffle的创建管线 - 数据结构 - 机器学习

默认构建器可使用户完全掌控组织客户端文件和文件夹的方法。

该配置用文件、文件夹和文件数组这些构成目标值(targets)的内容(右侧)描述目标值(左侧)。每个目标值将通 过处理右侧的文件产生,要进行文件扩充、把结果连接在一起,然后保存结果文件(即目标值)到创建目的地。这里,字符串(而非数组)在右侧指明,且那个文件 将被处理(如果有需要),然后被直接复制。如果字符串结尾是“/”,就被翻译为目录,不对该目录进行任何处理直接复制。右侧指明的所有路径都与app/目 录有关。

可以随时修改该配置和目录结构。比如不需要有JavaScript和stylesheets目录,但是请确保相应修改了配置。

 如果希望默认构建器在Web应用前端整合truffle,就要确保有一个创建目标(叫作app.js),默认构建器可以对其附加代码。它不会将truffle与其他任何文件名整合。

默认构建器的功能如下:

·自动将已编译合约artifact、已部署合约信息和以太坊节点配置导入客户端源代码。

·包括受推荐的相关程序,包括web3和truffle-contract。

·编译ES6和JSX文件。

·编译SASS文件。

·最小化asset文件。

8.4.10 truffle的创建管线 - 数据结构 - 机器学习 可以使用truffle watch命令,监听合约目录、应用目录和配置文件的变化。如有变化,它就重新编译合约,并生成新的artifact文件,然后重新创建客户端。但是它不进行移植和测试。

4.创建客户端

现在为DApp编写一个客户端,并使用truffle的默认构建器创建客户端。首先,在前面做好的配置中创建文件和目 录:创建一个app目录,在里面创建一个index.html文件和两个目录(分别称为JavaScript和styelsheets)。在 JavaScript目录中,创建index.js文件。在stylesheets目录中,下载并放入Bootstrap 4的CSS文件。详见https://v4-alpha.getbootstrap.com/getting-started/downloads/#bootstrap-css-and-js

加载bootstrap.min.css和app.js文件。有两种形式:一种是发送Metacoins给一个不同的账户;另一种是查询账 户中的Metacoins余额。在第一种形式中,用户必须选择一个账户,然后输入要发送的Metacoin数量和想要发送到的地址。在第二种形式中,用户 只需要选择要查询Metacoins余额的账户地址。

上述代码的执行过程如下:

1)truffle-default-builder使artifacts对象在__contracts__全局对象下可用。

2)使可用的合约抽象对所有作为全局变量(变量名与合约名相应)的合约可用。

3)通过已经设置provider提供web3对象;为合约抽象设置provider。还使web3对象连接到带名字开发的网络,如果不存在,则默认值是http://localhost:8545

4)在程序代码中,首先等待页面加载,加载后在连接的节点中检索账户列表,并在两张表中显示。还要调用MetaCoin abstraction的detectNetwork()方法。

5)设置两张表的submit事件触发器。它们两个都在提示栏显示结果。

6)当提交第一张表时,获得MetaCoin合约的部署实例,并用正确的实参调用sendCoin方法。

7)当提交第二张表时,在EVM中用调用get Balance方法检索被选择账户的余额,而非广播一个交易。

继续运行truffle创建命令,truffle会在build目录中创建index.html、app.js和bootstrap.min.css文件,并在这些文件中放入客户端的最终部署代码。

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=530

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646186", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646175", container: s }); })();
搜索

网站分类

标签列表

最近发表

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!

jQuery(document).ready(function($){ /* prepend menu icon */ $('#daohangs-around').prepend('
'); /* toggle nav */ $("#caidan-tubiao").on("click", function(){ $("#daohangs").slideToggle(); $(this).toggleClass("active"); }); });

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
关闭广告
关闭广告
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×