首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go-Ethereum自定义网络:如何限制合同创建?

Go-Ethereum自定义网络:如何限制合同创建?
EN

Stack Overflow用户
提问于 2018-10-30 09:36:28
回答 2查看 234关注 0票数 0

我已经使用go-ethereum创建了自定义区块链

我的网络有2个未锁定帐户的miners节点,然后是一个仅向miners广播事务的锁定帐户的公共节点。

我像这样运行公共节点:

代码语言:javascript
复制
geth --datadir standard1/ --syncmode 'full' --port 30392 --rpc --rpcport 9578 --rpccorsdomain '*' --rpcaddr 'MY PUBLIC ADDRESS HERE' --ws --wsaddr "MY PUBLIC ADDRESS HERE" --wsorigins "*" --wsport 9579 --wsapi 'db,eth,net,web3,txpool,miner' --networkid 22 --gasprice '1' 

问题是,如果有人向公共节点发送合同创建(例如,使用MyEtherWallet ),合同提交将被广播和挖掘。

我发现了这个:https://ethereum.stackexchange.com/questions/11091/is-there-any-way-to-disable-contract-creation-on-a-private-network

但是..。

a.矿工如何过滤交易?我需要创建我自己的带有特定逻辑的go-ethereum分支吗?

b.有没有办法限制合同的创建?或者只允许部署一个合约的方法?

c.我可以使用web3js查询事务并检查合同的创建,但如果我拥有挖掘/密封器节点,是否有方法删除合同?

d.也许我可以禁止正在提交合同的地址?这有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-03 20:57:07

我认为在以太坊是不可能控制谁可以发送交易的,因为它是一个开放的网络和公共区块链。如果你想实现这一点,我建议你必须切换到私有区块链,我推荐hyperledger

即使您派生了geth,任何有权访问genesis文件和所有内容的人都可以连接到网络,然后在他的节点上挖掘合约创建事务。

票数 0
EN

Stack Overflow用户

发布于 2020-04-22 18:53:30

如果您愿意投入一些开发工作,您可以使用fork geth来删除CREATE和CREATE2操作码。这样做可以删除创建新操作码的功能。

如果你控制了链上的大部分散列能力,你就可以阻止所有其他人使用这些操作码来挖掘事务。如果有人连接到你的链并挖掘一个无效的事务,你的节点将丢弃这个无效的块,并继续挖掘你的块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53056188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档