区块链中文技术社区

Swarm一个以太坊地址部署多个节点

先说结果:目前不能实现

在分析下原因
我们说关键的几个点

  1. 由于bee每个节点本地累计nonce,多节点并发可能拿到同样的nonce,如果同时操作同样的交易,则导致交易被覆盖

主要体现在兑换获得相同支票,
这个到容易解决
bee\pkg\settlement\swap\transaction\transaction.go

  1. 同样的以太坊地址导致计算的

swarm network address
swarm public key
从而 p2p address 相同
导致kademlia被拒
https://github.com/ethersphere/bee/issues/1789

https://github.com/ethersphere/bee/issues/1789

还想到用swap-factory-address各个节点配置统一个合约地址,来绕过

自欺好说
https://github.com/ethersphere/bee/blob/e688199e255190c4628d8122407bab4302d2cdd6/pkg/settlement/swap/chequebook/init.go#L108

// verify that the supplied factory is valid
err = chequebookFactory.VerifyBytecode(ctx)
if err != nil {
    return nil, err
}

但是对方检查过不去
https://github.com/ethersphere/bee/blob/e688199e255190c4628d8122407bab4302d2cdd6/pkg/node/node.go#L257

if err = chequebookFactory.VerifyBytecode(p2pCtx); err != nil {
    return nil, fmt.Errorf("factory fail: %w", err)
}

这官方最近也明确多开违规了
https://docs.ethswarm.org/docs/FAQ/#can-i-use-one-ethereum-addresswallet-for-many-nodes

等忙完稍后再继续跟吧

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »