如何通過 JSON-RPC 創建新帳戶?
我想通過 JSON-RPC 創建新帳戶。我檢查了 Ethereum 的 wiki ,但是我不知道如何做到這一點。
我找到了呼叫存在的帳戶,但這不是我想要的。
eth_accounts
你能告訴我怎麼做嗎?
首先,關於安全的說明:
personal
您不應該通過 RPC使API 可用如果您在本地受信任的電腦上,則應使用 IPC 而不是 RPC。否則,任何可以通過 RPC 連接到您的節點的人都可以嘗試暴力破解您的密碼並竊取您的乙太幣。
預設情況下,所有管理 API 都可通過 IPC 使用,因此無需在 geth 中使用任何標誌
通過 IPC 連接:
安裝我的庫:
npm install web3_extended
var web3_extended = require('web3_extended'); var options = { host: '/home/user/.ethereum/geth.ipc', ipc:true, personal: true, admin: false, debug: false }; var web3 = web3_extended.create(options); web3.personal.newAccount("password",function(error,result){ if(!error){ console.log(result); } });
將
host
變數替換為系統的正確路徑。注意:所有通過 IPC 的請求必須是非同步的。
一些替代方案:
我不知道您為什麼要通過 web3 創建新帳戶,但這可能不是實現您想要實現的目標的最佳方式。使用帶有客戶端輕錢包的hooked web3 提供程序或簡單地使用為您處理所有帳戶的Mist 瀏覽器會更加安全和模組化。
現在是技術(不要這樣做)
您需要
personal
通過 RPC 啟用 API。通過開始 geth 來做到這一點
geth --rpc --rpcapi "db,eth,net,web3,personal"
然後您可以
personal_newAccount
通過 RPC 使用該方法。web3.js 中沒有實現,所以需要手動發出 RPC 請求。例如捲曲:
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_newAccount","params":["password"],"id":1}' localhost:8545
使用密碼創建一個新帳戶
password
並返回地址:
{"id":1,"jsonrpc":"2.0","result":"0x05ca0ddf7e7506672f745b2b567f1d33b7b55f4f"}
有一些基本的文件或者: 使用非官方擴展的 web3.js
- 這允許您通過標準 web3.js 介面使用
personal
,admin
和API。miner