Me gustaría crear una nueva cuenta por JSON-RPC. Revisé la wiki de Ethereum , sin embargo, no pude encontrar cómo hacerlo.
He encontrado cuentas de llamadas existentes, pero no es lo que quiero. eth_accounts
¿Podrías decirme cómo hacer esto?
No debe hacer que la personal
API esté disponible a través de RPC
Si está en una máquina local confiable, debe usar IPC en lugar de RPC. De lo contrario, cualquier persona que pueda conectarse a su nodo a través de RPC puede intentar forzar sus contraseñas por fuerza bruta y robar su Ether.
Todas las API administrativas están disponibles de forma predeterminada sobre IPC, por lo que no es necesario usar ninguna bandera con geth
Instalar mi biblioteca: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);
}
});
Reemplace la host
variable con la ruta adecuada para su sistema.
Nota: Todas las solicitudes a través de IPC deben ser asíncronas.
No sé por qué desea crear nuevas cuentas a través de web3, pero probablemente no sea la mejor manera de hacer lo que está tratando de lograr. Es mucho más seguro y más modular usar un proveedor web3 enganchado con una billetera ligera del lado del cliente o simplemente usar el navegador Mist que maneja todas las cuentas por usted.
Debe habilitar la personal
API sobre RPC. Haz esto comenzando geth con
geth --rpc --rpcapi "db,eth,net,web3,personal"
Entonces puede usar el personal_newAccount
método a través de RPC. No está implementado en web3.js, por lo que debe emitir manualmente la solicitud RPC. Por ejemplo con curl:
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_newAccount","params":["password"],"id":1}' localhost:8545
crea una nueva cuenta con contraseña password
y devuelve la dirección:
{"id":1,"jsonrpc":"2.0","result":"0x05ca0ddf7e7506672f745b2b567f1d33b7b55f4f"}
Hay alguna documentación básica.
Alternativamente: use el web3.js extendido no oficial
personal
de una interfaz web3.js estándar.admin
miner
En ethereum-php/ethereum.php agregar
function personal_newAccount($passphase) { return $this->ether_request(__FUNCTION__, array($passphase)); }
y llámalo para crear una nueva cuenta
Por lo que parece, creo que estás usando testrpc de ganache para hacer esto. Si está utilizando Python para hacer esto. Es muy simple. Primero necesitas instalar web3. Escriba lo siguiente en la terminal
pip install web3
(asegúrese de estar usando Python 3.5 o superior). Ahora abra la consola de Python en la terminal escribiendo python
en la terminal. Una vez que esté en la consola de Python, escriba
from web3 import Web3
web3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545"))
web3.newAccount('1234')
Aquí '1234' es el código de acceso que se requiere para crear la cuenta de ethereum. Si no proporciona el código de acceso, se le pedirá que lo haga. Si no está utilizando testrpc o ganache, debe cambiar HTTPProvider a otros proveedores como se indica aquí .
tjaden hess
personal
funciones, incluso sobre IPC. Dame un minuto para hackear algo juntos.tjaden hess
Toshi
tjaden hess
npm install web3_ipc
victor tron
Toshi
tjaden hess
Toshi
tjaden hess
nick carraway
Yogesh Karodiya