Führen Sie ein Downgrade von Geth von 1.6 auf 1.59 durch, um Solc in Geth zu integrieren

Ich habe dieses Projekt auf ropsten testnt, das sich nicht weiterentwickeln, sondern weiterlaufen möchte. Da sie Solc in v1.6 aus Geth herausgenommen haben, erhalte ich die Fehlermethode eth_compilesolidity does not exist. Gibt es einen einfachen Weg, es zu umgehen? Wenn ich Geth auf v1.5 downgrade, würde mein Projekt funktionieren, ohne dass etwas geändert werden muss, und muss ich die Testnet-Blockchain löschen, die ich bereits habe? Was ist auch der richtige Weg, um Geth unter Linux auf v1.5 herunterzustufen?

Antworten (1)

Ihr Projekt sollte in Ordnung sein, wenn Sie die Binärdatei auf 1.5.9 herunterstufen. Allerdings würde ich empfehlen, vorher ein Backup zu machen.

Sie können den Quellcode von 1.5.9 von der Release-Seite des go-ethereum-Projekts https://github.com/ethereum/go-ethereum/releases/tag/v1.5.9 abrufen und in Ihr System einbauen.

Aktualisieren:

Ich habe die vollständige Ropsten-Blockchain auf 1.6.1 synchronisiert und die Binärdatei auf 1.5.9 heruntergestuft, die aus der Quelle erstellt wurde. Danach habe ich den Client gestartet. Der Kunde arbeitet.

ubuntu@test1:~$ geth --testnet
I0528 18:39:48.909724 node/config.go:445] Failed to start Ledger hub, disabling: libusb: unknown error [code -99]
I0528 18:39:48.909814 cmd/utils/flags.go:613] WARNING: No etherbase set and no accounts found as default
I0528 18:39:48.909841 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /home/ubuntu/.ethereum/testnet/geth/chaindata
I0528 18:40:47.701190 ethdb/database.go:176] closed db:/home/ubuntu/.ethereum/testnet/geth/chaindata
I0528 18:40:47.702531 node/node.go:176] instance: Geth/v1.5.9-stable/linux/go1.6.3
I0528 18:40:47.702595 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /home/ubuntu/.ethereum/testnet/geth/chaindata
I0528 18:40:47.791896 core/genesis.go:95] Genesis block already in chain. Writing canonical number
I0528 18:40:47.793168 eth/backend.go:276] Successfully wrote custom genesis block: 41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d
I0528 18:40:47.794628 eth/backend.go:187] Protocol Versions: [63 62], Network Id: 3
I0528 18:40:47.798475 eth/backend.go:215] Chain config: {ChainID: 3 Homestead: 0 DAO: <nil> DAOSupport: true EIP150: 0 EIP155: 10 EIP158: 10}
I0528 18:40:47.807987 core/blockchain.go:219] Last header: #1121267 [37787a3c…] TD=205694086442412
I0528 18:40:47.808046 core/blockchain.go:220] Last block: #1121267 [37787a3c…] TD=205694086442412
I0528 18:40:47.808059 core/blockchain.go:221] Fast block: #1121267 [37787a3c…] TD=205694086442412
I0528 18:40:47.832924 p2p/server.go:340] Starting Server
I0528 18:40:50.195813 p2p/discover/udp.go:227] Listening, enode://1943e86b5ef0b79104fe150c40c8492b9b362d560af30964a34a4fe9f75451ec051c23b97f37ea2cb6ed7ccf450e0baf8c656292abe3caddf3134564cd6a1e58@[::]:30303
I0528 18:40:50.196804 p2p/server.go:608] Listening on [::]:30303
I0528 18:40:50.197068 node/node.go:341] IPC endpoint opened: /home/ubuntu/.ethereum/testnet/geth.ipc
I0528 18:41:09.981681 eth/downloader/downloader.go:326] Block synchronisation started
I0528 18:41:10.171278 eth/downloader/downloader.go:723] Peer 96fa95f526f5839e [hs 0.00/s, bs 0.00/s, rs 0.00/s, ss 0.00/s, miss    0, rtt 20s]: potential rewrite attack: #1031267 [00000000…] <= #1031267 limit
I0528 18:42:02.066483 eth/downloader/downloader.go:723] Peer bb8f92cc0157584f [hs 0.00/s, bs 0.00/s, rs 0.00/s, ss 0.00/s, miss    0, rtt 20s]: potential rewrite attack: #1031267 [00000000…] <= #1031267 limit
Muss dazu die Blockchain gelöscht und anschließend neu synchronisiert werden?
@PetrosM Ich werde Ropsten synchronisieren, die Binärdatei herabstufen und mit der heruntergestuften Binärdatei starten und Sie darüber informieren
Sie müssen nicht neu synchronisieren. behalte einfach dein datadir/überschreibe es nicht.
@PetrosM Ich habe den Test mit Herabstufung gemacht und meine Antwort mit dem Ergebnis aktualisiert. Eine erneute Synchronisierung ist nicht erforderlich. Du kannst den Beitrag als gelöst markieren.
Hallo @IgorBarinov, ich hatte bis jetzt keine Zeit, es selbst zu versuchen. Ich habe die Quelle, cd in die Version 1.5.9 heruntergeladen, make geth eingegeben. Gehen Sie dann zu build/bin und geben Sie geth --help ein und sehen Sie, dass die Version immer noch 1.6 ist. Was mache ich falsch?
@PetrosM sollten Sie ausführen ./geth --help, um aus dem lokalen Verzeichnis zu starten, oder das System verwendet den Systempfad
Ja, ich dachte, es würde es automatisch ausführen. Das hat funktioniert vielen Dank!