Ist es möglich, mit einem bereitgestellten Vertrag in einer privaten Blockchain mit der Web3-API zu interagieren?
Ich habe bereits einen Vertrag bereitgestellt und die Vertragsadresse gespeichert, aber ich finde nicht, wie ich mit diesem Vertrag nicht interagieren kann?
Sie können mit Remix interagieren. Ändern Sie einfach Ihre Umgebung auf „Web3-Anbieter“ und laden Sie den Vertrag von der Adresse. Jetzt sehen Sie die Methoden, auf die Sie zugreifen können.
Außerdem können Sie Ihre eigene HTML-Anwendung erstellen, mit der Sie darauf zugreifen können. Dabei ist mir ein Fehler unterlaufen. Beachten Sie, dass mein Vertrag im Ropsten-Netzwerk bereitgestellt wird. Wenn Sie auf Ihren Vertrag zugreifen möchten, verwenden Sie den HTML-Code und anstelle von
web3 = neues Web3 (neues Web3.providers.HttpProvider(" https://ropsten.infura.io/ "));
geben (solange Sie eine Verbindung über den 8545-Port herstellen)
web3 = neues Web3 (neues Web3.providers.HttpProvider(" http://localhost:8545 "));
Ropsten-Netzwerk - 405-Methode bei eth_sendTransaction nicht zulässig
Unter geth könnten Sie eine Vertragsinstanz erstellen, indem Sie verwenden
contractinstance = eth.contract(abi).at(addr)
Das abi wird gefunden mit -
solc --abi smartcontractname.sol
Kopieren Sie die abi (ohne Anführungszeichen in eine Variable in geth), die Adresse ist Ihre 20-Byte-Adresse, die während der Bereitstellung angegeben wurde.
Dann sind die Funktionen ausführbar mit -
contractinstance.functionname(..)
Koceila lounici
Jim