He ejecutado con éxito geth --rpc
para probar algunas funciones, pero necesito la personal
API que, según esta respuesta , debe realizar IPC.
cuando corro
geth --ipcapi "db,eth,net,web3,personal" --ipcpath /tmp/geth.ipc
Esto crea el archivo ipc y geth parece iniciarse normalmente.
Tengo los siguientes módulos npm instalados:web3
web3_extended
web3_ipc
Luego ejecuto esto en nodejs:
var web3_extended = require('web3_extended');
var options =
{
host: '/tmp/geth.ipc',
ipc: true,
personal: true,
admin: false,
debug: false
};
var web3 = web3_extended .create (options);
var coinbase = web3.eth.coinbase;
La última línea me da una respuesta HTML que incluye
Your browser sent a request that this server could not understand.
y
Apache/2.4.12 (Ubuntu) Server at localhost Port 80
Esa línea de Apache me hace pensar que nodejs ni siquiera está intentando conectarse por IPC.
¿Por que no? O, ¿cuál más es el problema?
P: ¿Por qué no puedo conectarme por IPC? ¿Por que no? O, ¿cuál más es el problema?
R: A partir de su mensaje de respuesta HTML, parece que su código está utilizando actualmente la versión de web3_extended que no es compatible con el protocolo IPC.
¿Puede comprobar que está utilizando tjade273/web3_extended y NO The18thWarrior/web3_extended ?
El primero se bifurcó del segundo e incluye el manejo del protocolo IPC. De tjade273/web3_extended/blob/index.js - líneas 7 a 15 :
function create(options) {
if(options.ipc){
var client = new net.Socket();
web3.setProvider(new web3.providers.IpcProvider(options.host,client));
}
else{
web3.setProvider(new web3.providers.HttpProvider(options.host));
}
if (options.personal) {
mientras que el código original de The18thWarrior/web3_extended/blob/index.js - líneas 6 a 9 :
function create(options) {
web3.setProvider(new web3.providers.HttpProvider(options.host));
if (options.personal) {
espray
tjaden hess
npm install web3_ipc
para instalar el mío en lugar deweb3_extended
para la otra versiónPrashant Prabhakar Singh
web3_ipc
y noweb3_extended
? Como en este caso, recibo un errorcannot find node module web3_extended
. Y si instalo ambos módulos de nodoweb3_extended
yweb3_ipc
recibo el mismo error queYour browser sent a request that this server could not understand.
¡Ayuda!