我连敲3年代码,工资却不如刚入职的TA!

以太坊让世人第一次知道了智能合约的概念,为了支持智能合约,以太坊必须把自己变的特别像一台计算机,那么全球的节点连接到一起,怎么能像一个计算机呢?那就是使用 EVM(以太坊虚拟机)技术,让每个节点的链表上可以运行智能合约的指令。全球的以太坊节点连接起来,也就形成了全球计算机。

对有一定编程经验的人来说,Solidity 开发绝对不是什么难事。Solidity 确实极容易上手,但是确实有很多细节需要注意的。一个智能合约是怎样部署到以太坊网络的呢?

以太坊智能合约可以通过编辑器经过rpc远程调用(默认用8545端口)发布到geth节点上,最终在以太坊网络中运行。

众所周知,我们在以太坊上执行智能合约是需要消耗 gas 的,也就是说没有以太是不能运行的,这对很多童鞋来说表示难以理解。其实这涉及到经济系统的利益问题,我们执行了一个指令,整个网络都要同步数据,而这些指令是需要矿工进行打包交易的,如果矿工的利益不能保证,最后也就将导致整个网络无人维护。

那么问题又来了,矿工有利益,开发者的收益如何实现呢?这就要具体问题具体分析,有些需求是为了保证数据存储在区块链上永不丢失,这个是保存类价值。对于开发者来说,开发出来爆款的 DApp 就是最大的收益,参考之前火爆的加密猫。

TPS 较低也是阻碍区块链发展的一大原因,这是区块链的架构决定,达成共识方面本就需要时间。作为应用的开发者来说,应该让用户有更好的体验。对于一个未确认的交易,我们可以采用监控事件的方式进行处理,这就是一个异步模式,这个事件其实类似于我们平常写程序里经常使用的 print。

合约代码如下:

js代码中添加事件的处理(map_event.js)

运行时启动geth需要注意参数:

geth --datadir ./data --networkid 15 --port 30303 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcvhosts "*" --rpcapi 'db,net,eth,web3,personal' --rpccorsdomain "*" --ws --wsaddr "localhost" --wsport "8546" --wsorigins "*" --nat "any" --nodiscover --dev --dev.period 1 console 2> 1.log

运行效果如下:

如何从0到1 ,转型区块链?

有人说区块链即未来,准备好成为一名区块链工程师了吗?最后做个软广,而为了避免漫无目且零散地学习,在这里,我推荐下文中柏链道捷和 CSDN 学院联合出品《以太坊DApp高薪实战》,通过 2 个月的系统学习,目标是成为优秀的区块链工程师(不是套路,仅为推荐)。

课程内容由区块链通证派孟岩领衔专门化课程研发队伍,紧密对接以太坊官方资源,封闭自主研发课程体系与项目案例,萃取精华内容,保证知识体系连贯、系统,逻辑严密,学习路径最优。

联系 CSDN 学院区块链老师,获取一对一专属服务

(包括:IT 职场规划服务/专属折扣)

(我们的课程服务)

联系 CSDN 学院区块链老师,获取一对一专属服务

(包括:IT 职场规划服务/专属折扣)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181123A1KIEG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券