首页 文章

集团的Geth封锁没有解锁帐户

提问于
浏览
0

您好我有一个本地区块链,Geth客户端,2个节点和clique权威证明算法 .

我用这个命令启动geth:

geth --datadir node2/ --syncmode 'full' --port 30312 
     --rpc --rpcport 8546 --rpccorsdomain "*" 
     --ipcpath geth.ipc --rpcapi 'personal,db,eth,net,web3,txpool,miner' 
     --bootnodes 'enode://702efed8e606...ad041b4371a91989@127.0.0.1:30310' 
     --networkid 2456 --gasprice '1' --mine 
     --unlock '0x46004DEAfddb60d11cA04501df8C52aE4679Be8f' --password password.txt

但由于解锁现在每个人都可以将以太网从此帐户转移到其他帐户

像这样:

const Web3 = require("web3");    
var web3Client = new Web3(new Web3.providers.HttpProvider("http://localhost:8546"));
await web3Client.eth.sendTransaction({
  from: "0x46004DEAfddb60d11cA04501df8C52aE4679Be8f", 
  to: "0xE77e5634A46153e1cfCa02350cf212BdbC18fbC6", 
  value: 23
});

但如果我从geth命令中删除--unlock,我就不能再封锁了

WARN [06-01|14:44:52] Block sealing failed    err="authentication needed: password or unlock"

是否有可能以其他方式密封块,以便我不再需要解锁帐户?

1 回答

  • 0

    不幸的是,geth需要访问私钥才能签署交易,因此您必须将其解锁,否则无法签名 .

    你可以做的是,有这个节点签名,并摆脱--ipcpath geth.ipc --rpcapi'personal,db,eth,net,web3,txpool,miner'代替,将rpc提供给另一个没有解锁的节点帐户 .

    将此其他节点用于所有交互,并允许第一个节点进行签名 .

    干杯;埃文

相关问题