Ich verwende die Metamask.io-Erweiterung in Google Chrome. Metamask.io wurde mithilfe der Socket-Adresse (IP:Portnummer) korrekt mit dem privaten Netzwerk verbunden, das auf der AWS EC2-Instanz gehostet wird. Basic Contract wurde auf der Blockchain mit Remix IDE für Solidity-Programmierung bereitgestellt. Ich kann die Informationen abrufen (Funktion getInstructor). Die neuen Dozenteninformationen können jedoch nicht eingestellt werden.
Schritte -
Auf dem privaten Blockchain-Knoten von Ethereum habe ich versucht, ausstehende Transaktionen zu finden, aber es gab keine. Wie gezeigt,
> eth.pendingTransactions
[]
Wenn Sie dies jedoch versuchen,
web3.eth.getBlock("pending")
{
difficulty: 25082169,
extraData: "0xd583010701846765746885676f312e39856c696e7578",
gasLimit: 4712388,
gasUsed: 0,
hash: null,
logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
miner: null,
mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
nonce: null,
number: 1557557,
parentHash: "0xf84ce5ff7845f399eb698bfc33abeb24a8e459096d7ad9c097de3eb6130a6360",
receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
size: 537,
stateRoot: "0x017184c9d24daab688c39468af064cd3ab748f5adc9c5b1fd3c5bcc2f3a318a0",
timestamp: 1523753000,
totalDifficulty: 0,
transactions: [],
transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
uncles: []
}
Vor ein paar Tagen konnte ich diese grundlegende Transaktion durchführen, aber jetzt bin ich es nicht mehr. Kann nicht verstehen, was das Problem ist.
Mögliche Fehler -
Nach diesen Diskussionen
Da Miner-Knoten und Transaktionen nicht gesendet wurden , habe ich versucht, ein anderes persönliches Konto zu erstellen und es mir zu überlassen (das ist fehlgeschlagen).
Das „übliche“ Setup für die Entwicklung besteht darin, Metamask nicht mit Ihrem AWS-Knoten zu verbinden, da Sie diesem Knoten keine APIs zur Verfügung stellen möchten. Ich vermute, Sie verwenden POA richtig?
Lassen Sie einfach einen lokalen Knoten auf Ihrem Computer laufen und verbinden Sie Metamask mit localhost.
Standardmäßig akzeptiert der Knoten nur Verbindungen von localhost. Sie können dies ändern, um Verbindungen von jedem zu akzeptieren mit: --rpcaddr "0.0.0.0".
Bitte beachten Sie, dass jedes Mal, wenn ein privater Schlüssel freigeschaltet wird, jeder im Internet diesen Schlüssel verwenden kann, indem er Ihren RPC-Server abfragt und Transaktionen sendet.
Klingt, als hätten Sie dieses Problem: https://github.com/MetaMask/metamask-extension/issues/1722
chainId
Versuchen Sie, und networkId
auf denselben Wert einzustellen , damit MetaMask EIP-155-konform bleibt.
Eine Anleitung zur Verwendung eines benutzerdefinierten Knotens mit MetaMask finden Sie hier: https://github.com/MetaMask/faq/blob/master/USERS.md#using-a-local-node
Ich hatte ein ähnliches Problem. Grundsätzlich hatte mein Smart Contract in der Funktion, in der Sie Ethereum senden, kein "zahlbar". Sie sagen, dass alles korrekt funktioniert, Sie können abrufen, die Metamaske öffnet sich, sendet aber kein Ethereum. Versuchen Sie, "zahlbar" hinzuzufügen, und lassen Sie mich wissen, ob das funktioniert hat, damit ich weiß, dass ich mich eingehender mit Ihrem Problem befassen muss.
Ismael
mine.start(1)
oder ähnliches. Von Ihrem ausstehenden Block hat es die Nummer 1557557, was für ein privates Testnet ziemlich hoch ist, was gibt eseth.blockNumber
zurück? Sind Sie sicher, dass Sie sich mit dem richtigen Netzwerk verbinden?Chaitanya Bapat
> eth.blockNumber
1558456