加载中 ...

以太坊批量转账助手

2019-03-12 02:17 编辑:btc268.com 来源:区块链资讯

  

书生键客一个被黑科技耽误的小小书童

               书生唱的是杂论两三篇,但求醒耳不枸名,诸位看罢自去闲!

  


  前言

    这是个浮夸的年代,我们活在“全裸”的社会,在互联网技术蓬勃发展的背景下 我们遭遇的网络虚假信息越来越多。温床是养育不出强者,本文将介绍一些黑科技软件与背后的调查报告,因不可逆转的原因 导致一些太过于极端的事物不可呈现 各位看官 容我慢慢道来! 

     

  

- 01  什么是EHT

  以太坊(英文ETHereum)是一个开源的有智能合约功能的公共区块链平台,提供分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,允许任何人在平台上搭建区块链技术运行的应用。其专用加密货币以太坊(Ether)通过全球以太坊矿池/矿机来处理点对点合约!

- 02  EHT拥堵困扰-交易机制

  ETH 作为目前应用最广的智能合约网络,受制于TPS(当前ETH 网络出块速度为14秒/块,每区块包含约140笔交易,即每秒10笔交易)的约束时常导致网络拥堵,因此开发者在设计之初就要考虑到拥堵状况及交易手续费。

  在ETH上发起一笔交易,矿工收取手续费后将该交易打包到下一个区块,便于理解我们用生活术语解释整个过程。

  工作量 = 油钱

  Gas Limit = 汽油量(固定)

  Gas Price(单位:Gwei) = 汽油单价

  矿工 = 加油站老板

  一笔交易的手续费=工作量(油钱)= Gas Limit(汽油量)* Gas Price(汽油单价)

  由于每个区块的处理数量有限,为了利益最大化,矿工会优先处理支付Gas Price更高的交易。通常ETH会推荐一个Gas Price,确保合理的价格和快速交易。但随着处理交易增多产生拥堵,用户会大幅度提高Gas Price ,来进行合理的「插队」,随着插队人数越来越多, Gas Price 价格会一路走高,拥堵高峰时,Gas Price会达到平日的十倍甚至是百倍。

  - 03  ETH拥堵困扰 - 批量发送

  在糖果盒子,交易所等需要批量交易的场景时,虽然可以通过累加nonce值来一次性发出多笔交易,但发出的交易只是进入未确认交易池,而只有被打包进区块的交易才是成功到账,这些多笔交易何时被打包取决于网络拥堵状况和用户设置的Gas Price。

  这里解释下ETH中的nonce,ETH账户体系机制决定了,从任一地址发出的交易都会在交易信息里设置一个顺序编号,编号从0开始,该地址发出的下一笔交易被打包进区块时,编号就要 1,以此来记录交易历史排序和数量,这套编号系统就是nonce。假设地址A之前一共发送过9笔交易都成功到账,A要发第十笔,交易里的nonce便要设为9(从0开始计算)。如果设置成10,矿工会一直等待nonce为9的交易出现,而这笔nonce为10的交易无法打包进区块的。即矿工只能按nonce数值顺序强制处理交易。而如果有两笔同样nonce为9的交易,节点会选择交易费更高交易,另一笔则不会处理。

  

  如图所示,在由地址A发出的且已经被打包进区块的交易已有10笔,nonce的值为9(从0开始)。所以交易池中nonce为10,11,12的交易接下来都有可能按序被矿工打包,这些未确认交易处于pending状态。但因为缺少nonce为13的交易,那nonce为14的交易暂时不可能被矿工列入打包的候选交易,处于queued状态。待nonce为13的交易出现在交易池中时,nonce为14的这笔交易才有可能被打包。

  这导致,如果某一地址批量发送,只要有一笔交易Gas Price 过低,根据nonce 机制,系统将不会处理这币交易nonce值后面的交易,造成批量发送停滞。

  - 04  合约层面的批量转账

  假设从一个地址往10个地址发送某ERC20 Token,目前方法是针对每个地址去创建一笔transfer交易,批量产生了10笔交易然后发出。 如果能像BTC那样,在一笔交易里写入多笔转账操作,就能降低的Gas消耗

  一些Token在合约里就实现了批量转账的 batchTransfer 方法,该方法接收数组,然后开始循环,针对数组中的每个地址进行发起一笔转账。batchTransfer 并不是ERC20代币的标准,本着越简单越安全的原则,如果要在Token合约内实现该功能,请务必要做好代码的安全审计。

  首先,ETH是无法在一笔交易里直接去多次调用合约或者同时调用多个合约的,但在合约内的函数是可以外部调用其他合约。我们可以将批量转账的逻辑以一个智能合约来实现,通过该合约的去多次外部调用Token合约内 transfer 方法,其目的也就达到了,

  实现时还需要具体考虑安全和性能的问题,比如_receivers数组和_amounts数组的长度是否相等,循环中”call”调用失败后应该回退整个批量交易,避免传入的数组长度过大等等。此时,与直接去调用Token的 transfer 方法10次的消耗量相比,通过 BatchTransfer Caller 合约来实现批量转账节省了大概30%的Gas总消耗,是不是非常可观呢。

- 06  关于以太坊批量转账助手基于以太坊智能合约平台接口上开发的一款全自动转账的软件。傻瓜式的一键批量工具,配置完成后可轻松一次发起几千笔批量的操作了,去掉了繁琐的工作量。以前的批量工具配置复杂,难以操作,相信书生的傻瓜式的工具可以让任何人轻松操作,极大地提高了体验性。让合约转账变得如此简单!

  

  

  #END#

  # 喜欢就关注吧 #

关键词:比特币新闻 币牛牛

转载自比特币新闻网(www.btc268.com),提供比特币行情走势分析与数字货币投资炒币最新消息。

原文标题:以太坊批量转账助手

原文地址:http://www.btc268.com/ytf/xw/8389.html

本文来源:区块链资讯编辑:btc268.com

本文仅代表作者个人观点,与本网站立场无关。

本网站转载信息目的在于传递更多信息。请读者仅作参考,投资有风险,入市须谨慎!

'); })();