geth sendTransaction не работает

У меня есть сервер geth, с которого мне нужно перевести немного эфириума в другой кошелек. Я изучил вики-страницу geth и обнаружил, что для этой работы есть метод sendTransaction.

Во-первых: я использовал следующую команду для перевода денег, повторное выполнение дало мне хэш транзакции, но не переводило деньги на желаемый кошелек.

eth.sendTransaction({from:eth.coinbase, to:"WALLET-Address", value: web3.toWei(0.05, "ether")});
response: 0x....

Во-вторых: я использовал комбинацию некоторых параметров gas и gasPrice для совершения транзакции, но результат был тем же. как этот:

eth.sendTransaction({from:eth.coinbase, to:"WALLET-Address", value: web3.toWei(0.05, "ether"), gas: 100000, gasPrice: web3.toWei(14000,'gwei')})
response: 0x...

Важно, я должен отметить, что транзакция не появилась в etherscan.io.

пожалуйста, помогите мне разобраться с этой проблемой. Спасибо.

ИЗМЕНИТЬ Это не моя собственная частная сеть. это проект, и я пишу код для кого-то другого

Это мой JS-код. Скажите, в чем проблема?

#!/usr/bin/nodejs

var loadedWeb3 = require('web3');
var web3 = new loadedWeb3();

const URL = 'http://<IP>:8545';

web3.setProvider(new web3.providers.HttpProvider(URL));

var req = {
    to:"My-Wallet",
    from: "SourceWallet",
    value: web3.utils.toWei('1', 'ether'),
    gasLimit : 21000,
    gasPrice : 20000000000
};

web3.eth.getTransactionCount(req.from).then(console.log);

web3.eth.sendTransaction(req)
    .on('transactionHash', function(hash){
        console.log("TxHash: " + hash);
        web3.eth.getTransaction(hash).then(console.log);
    })
    .on('receipt', function(receipt){
        console.log("Receipt: " + receipt);
        console.log(receipt);
    })
    .on('confirmation', function(confirmationNumber, receipt){
        console.log("confirmed -> " + confirmationNumber);
        console.log(confirmationNumber);
        console.log("Receipt -> " + receipt);
        console.log(receipt);
    })
    .on('error', console.error);

person Jake Dragon    schedule 07.08.2018    source источник
comment
Это ваша собственная частная сеть Ethereum?   -  person matt9    schedule 07.08.2018
comment
Это не моя собственная частная сеть. это проект, и я пишу код для кого-то другого   -  person Jake Dragon    schedule 07.08.2018


Ответы (2)


Первое: вам нужны средства. Для отправки эфира вам понадобится эфир. Чтобы отправить 0,05 эфира, вы, вероятно, потратите 0,06 (0,05 + 0,01 транзакционных издержек).

Во-вторых: у вас должен быть разблокирован кошелек на вашем узле.

В-третьих: проверьте, есть ли у eth.coinbase средства, поскольку это кошелек, с которого вы пытаетесь получить эфир. Я бы посоветовал вам проверить, есть ли у eth.accounts [0] средства.

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

person Eduardo Elias Saléh    schedule 07.08.2018
comment
Спасибо, чувак, все условия в порядке - person Jake Dragon; 07.08.2018
comment
Теперь я получаю 24 подтверждения, но у меня все еще нет денег в кошельке - person Jake Dragon; 07.08.2018

Дополнительная информация

Я использовал следующий код в NodeJS для перевода денег. Я получил транзакционный хэш + 25 подтверждений, но деньги не были переведены.

#!/usr/bin/nodejs

var loadedWeb3 = require('web3');
var web3 = new loadedWeb3();

const URL = 'http://<IP>:8545';

web3.setProvider(new web3.providers.HttpProvider(URL));

var req = {
    to:"Destination Wallet",
    from: "Source Wallet",
    value: web3.utils.toWei('1', 'ether')
};

web3.eth.sendTransaction(req)
    .on('transactionHash', function(hash){
        web3.eth.getTransaction(hash).then(function(trans) {
            var line = "====================================";
            console.log(line + " Transaction " + line);
            console.log("      From: " + trans.from);
            console.log("        To: " + trans.to);
            console.log("Trans Hash: " + trans.hash);
            console.log("  Ethereum: " + web3.utils.fromWei(trans.value.toString(), 'ether'));
            console.log(" Gas Limit: " + trans.gas);
            console.log(" Gas Price: " + web3.utils.fromWei(trans.gasPrice.toString(), 'Gwei'));
        });
    })
    .on('receipt', function(receipt){
        var line = "======================================";
        console.log(line + " Receipt " + line);
        console.log("Block Hash: " + receipt.blockHash);
        console.log("Block Code: " + receipt.blockNumber);
        console.log("  Used Gas: " + receipt.gasUsed);
        console.log(line + "=========" + line);
    })
    .on('confirmation', function(confirmationNumber, receipt){
        console.log("Confirm Code: " + confirmationNumber);
    })
    .on('error', console.error);

и появился следующий ответ:

==================================== Transaction ====================================
      From: 0x1234400000000000000000000000000000000000
        To: 0x1234500000000000000000000000000000000000
Trans Hash: 0xeaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 Gas Limit: 90000
 Gas Price: 0.00009
Confirm Code: 0
====================================== Receipt ======================================
Block Hash: 0x8bcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
Block Code: 41962
  Used Gas: 21000
=====================================================================================
Confirm Code: 1
Confirm Code: 2
Confirm Code: 3
Confirm Code: 4
Confirm Code: 5
Confirm Code: 6
Confirm Code: 7
Confirm Code: 8
Confirm Code: 9
Confirm Code: 10
Confirm Code: 11
Confirm Code: 12
Confirm Code: 13
Confirm Code: 14
Confirm Code: 15
Confirm Code: 16
Confirm Code: 17
Confirm Code: 18
Confirm Code: 19
Confirm Code: 20
Confirm Code: 21
Confirm Code: 22
Confirm Code: 23
Confirm Code: 24

но транзакция не находится в https://etherscan.io, и деньги не были переведены.

person Jake Dragon    schedule 07.08.2018