如何确保交易在私有以太坊区块链中收取0费用?

时间:2018-03-16 10:28:26

标签: blockchain ethereum parity

我的笔记本电脑上有一个私有奇偶校验节点。如果在此私有以太坊区块链中发布交易,我怎样才能确保有 0交易费,这意味着我可以发布交易给出" gas:0"?

示例:帐户A有20个以太网,帐户B有0个以太网。当我将10以太从账户A转账到账户B时,账户A现在显示9.980,账户B显示10。

如何防止扣除额外的气体?

感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

您可以控制私人网络中的矿工,因此您只需要自定义它们以接受gasPrice = 0的交易。

来自Parity documentation

--gasprice WEI                   Minimum amount of Wei per GAS to be paid for a
                                 transaction to be accepted for mining. Overrides
                                 --basic-tx-usd.

请注意,这并不会改变天然气本身在网络中的工作方式。您仍然有气体限制,可以产生气体错误。唯一的区别是,客户说它会在交易中为天然气支付0,而矿工则愿意接受0价格的交易。

编辑 - 发表评论:

不可否认,我使用Geth而不是Parity,但是这在Geth中起作用,如果它曾经在Parity中被支持然后被禁用,我会感到惊讶。您可能必须更改Parity源代码才能使其正常工作。或者,您可以切换到Geth。

在Geth下方显示结果

1号航站楼

$ geth --networkid 29462 --datadir "./data" --gasprice 0 --nodiscover --port 31313

<Output Truncated>

2号航站楼

$ geth attach '//./pipe/geth.ipc'
Welcome to the Geth JavaScript console!

instance: Geth/v1.8.2-stable-b8b9f7f4/windows-amd64/go1.9.2
coinbase: 0xd69cc234de15189f0ba998a41421961e89837fc5
at block: 79 (Tue, 06 Mar 2018 07:56:30 PST)
 datadir: C:\cygwin\home\adamk\eth\private\node1\data
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> web3.eth.getBalance('0x1b8c05505f86bf20c6a1110073cd6f9b3bf555df');

2000000000000000000

> web3.eth.sendTransaction({to: '0xd69cc234de15189f0ba998a41421961e89837fc5', from: '0x1b8c05505f86bf20c6a1110073cd6f9b3bf555df', gasLimit: 6000000, gasPrice: 0, value: web3.toWei(1, 'ether')});

"0x1eceea33aee0bd27feccd1d7aba371459090bb60af2cc18d63548112019ac2b9"

> web3.eth.getBalance('0x1b8c05505f86bf20c6a1110073cd6f9b3bf555df');

1000000000000000000

> web3.eth.getTransaction('0x1eceea33aee0bd27feccd1d7aba371459090bb60af2cc18d63548112019ac2b9');

{
  blockHash: "0xad40ce3bfa30b2551dbd085c29ac1800add8b9bc464944625b82fb17df567823",
  blockNumber: 897,
  from: "0x1b8c05505f86bf20c6a1110073cd6f9b3bf555df",
  gas: 90000,
  gasPrice: 0,
  hash: "0x1eceea33aee0bd27feccd1d7aba371459090bb60af2cc18d63548112019ac2b9",
  input: "0x",
  nonce: 0,
  r: "0xc55b5a25f4c7670418f304db44d949f5a077c1b4c8cfcc89b486a84cccb59d22",
  s: "0x7d1d5ee1ed54a0098299d44bd692fc0d3d249609b3c01810beb00180d11e2e35",
  to: "0xd69cc234de15189f0ba998a41421961e89837fc5",
  transactionIndex: 0,
  v: "0x1b",
  value: 1000000000000000000
}

(请注意,转移的发起人,0x1b8c05505f86bf20c6a1110073cd6f9b3bf555df,正好减少1以太。不支付任何费用。)