当前位置: 首页 > 知识库问答 >
问题:

Go以太坊定制网络:如何限制合同创建?

訾渝
2023-03-14

我已经创建了自定义区块链使用去以太网

我的网络有2个矿工节点与解锁帐户,然后一个公共节点与锁定帐户,只广播交易的矿工

我这样运行公共节点:

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

但是

矿工如何过滤交易?我需要创建我自己的分支去以太网与特定的逻辑

b、 有没有办法限制合同的创建?还是一种只允许部署一个合同的方法?

c、 我可以使用web3js查询事务并检查合同创建情况,但是如果我拥有mining/sealers节点,有没有办法删除合同?

D.也许我可以禁止提交合同的地址?那有可能吗?

共有2个答案

宁飞宇
2023-03-14

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

如果您控制链上的大部分哈希能力,您可以阻止所有其他人使用这些操作码挖掘交易。如果有人连接到你的链并挖掘一个无效的交易,你的节点会将这个块视为无效并继续挖掘你的块。

吉凯捷
2023-03-14

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

即使你找到任何有权访问genesis文件的人,任何东西都可以连接到网络,然后在他的节点上挖掘合同创建事务。

 类似资料:
  • 1) 我使用以下命令设置一个专用以太坊网络 2) 创建了一个帐户 3)然后,使用miner.start()命令启动矿工。 过了一段时间,以太被自动添加到我的帐户中,但我的私人网络中没有任何挂起的事务。那么我的矿工们从哪里得到乙醚呢? 尽管我没有在我的网络中实例化任何事务,但一旦启动miner,我就可以看到日志中记录了一些事务。 日志如下: 我的创世区块代码如下: 由于我的网络是隔离的,并且只有一个

  • 以太坊(Ethereum)是一个支持智能合约的区块链平台,它与比特币最大的不同是,以太坊通过一个虚拟机(EVM)可以运行智能合约。 以太坊是Vitalik Buterin(维塔利克·布特林,人称V神)在2013年提出的概念,Vitalik最早参与了比特币社区的开发,并希望比特币把功能受限的脚本扩展成图灵完全的编程环境,但没有得到比特币开发社区的认同,于是他决定另起炉灶,打造一个新的区块链平台,目标

  • 上周,Metamask引入了一个名为“wallet\u AddesthumChain”的新功能,允许用户在收到提示时自动向其钱包添加新的Etheruem RPC。此功能还允许用户更改所连接的网络,例如,如果我已经将Binance智能链连接到metamask,则调用wallet\u AddesthumChain将活动网络更改为BSC。但是,在以太坊链中尝试此操作时,会出现一个错误,即您无法添加mai

  • 这本迷你书的本意是给任何想用Go进行以太坊开发的同学一个概括的介绍。本意是如果你已经对以太坊和Go有一些熟悉,但是对于怎么把两者结合起来还有些无从下手,那这本书就是一个好的起点。

  • 本文向大家介绍如何在Linux上限制网络带宽,包括了如何在Linux上限制网络带宽的使用技巧和注意事项,需要的朋友参考一下 您是否曾经与多个设备共享网络带宽?如果您曾经处于一个应用程序占用了所有流量的位置,那么您是系统管理员还是Linux用户,您将需要发现如何控制应用程序的上载和下载速度,以确保您的带宽并不完全被单个应用程序占用。本文给出了有关如何在Linux上限制网络带宽的想法。 限制网络带宽

  • 我已经写了一个以太坊智能合约在坚实的语言。为了测试,我可以使用Ganache运行一个本地节点,并使用在其上部署我的合同。 我想用JavaScript测试我的合同。我想为每个测试创建一个新的契约实例。 我在我的项目中创建了一个测试文件: 我运行它与。它基本上是摩卡,但是松露通过与智能合同的JavaScript连接为您定义了。 松露<代码>合同功能和摩卡的<代码>描述功能几乎一样,有一个我不明白的小变