Пользовательская сеть Go-Ethereum: как ограничить создание контрактов? - PullRequest
0 голосов
/ 30 октября 2018

Я создал собственный блокчейн, используя go-ethereum

В моей сети есть 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

Но ..

а. как майнер может фильтровать транзакции? мне нужно создать свой собственный форк go-ethereum с определенной логикой для этого?

б. Есть ли способ ограничить создание контракта? или способ разрешить развертывание только одного контракта?

с. Я могу запрашивать транзакции с помощью web3js и проверять наличие контрактов, но есть ли способ удалить контракты, если я владею узлами майнинга / уплотнения?

d. Может быть, я могу забанить адрес, который отправляет контракт? это возможно?

1 Ответ

0 голосов
/ 03 ноября 2018

Я думаю, что в Ethereum невозможно контролировать, кто может отправлять транзакции, поскольку это открытая сеть и общедоступная блокчейн. Если вы хотите реализовать эту идею и подумать, что вам нужно переключиться на приватную цепочку блоков, я бы порекомендовал hyperledger .

Даже если вы раскошелились на любого, у кого есть доступ к файлу генезиса, и все может подключиться к сети, а затем добыть транзакции создания контракта на его узлах.

...