Können wir 2 oder mehr private Blockchains verbinden? [Duplikat]

Nehmen wir an, es gibt 2 Organisationen und jede hat ihre eigenen privaten Blockketten in einer anderen geografischen Region.

Jetzt müssen sie zusammenarbeiten und einen Teil der Daten untereinander teilen.

Ist es möglich, diese 2 privaten Blockchains zu verbinden und kontrollierten Zugriff aufeinander zu haben?

siehe ethereum.stackexchange.com/questions/10752/…
Hallo Badr.. Der obige Beitrag sagt, dass es mit Ethereum noch nicht möglich ist. Gibt es eine Roadmap, die diese Funktion unterstützt?
Sie könnten das Team in Gitter fragen, um eine genaue Antwort zu erhalten

Antworten (1)

Nun ja, das ist möglich, Sie können basierend auf Ihrem RAM auch 2 davon parallel schalten, aber Sie werden höchstwahrscheinlich eine bekommen, out of memory errorwenn Sie versuchen könnten, 3 oder mehr parallel zu schalten. Aber ich glaube nicht, dass es möglich ist, Blockchains, ihre Daten untereinander zu teilen,

Wie kann ich mehrere verbundene Blockchains erstellen? :

Mit Ethereum allein ist es (noch) nicht möglich, es sei denn, Sie implementieren eine benutzerdefinierte Lösung.

Wenn Sie jedoch mehrere gethProzesse für jede private Blockchain im Hintergrund ausführen, können nodejsSie durch die Verwendung eine Verbindung zu den verschiedenen Blockchains und ihren Verträgen herstellen, und sie können Informationen untereinander senden.

Ich würde vorschlagen, jede private Blockchain einzeln zu verbinden, jede hat ihren eigenen Ordner, um ihre Blockchain zu speichern.

Zuerst müssen Sie auf Ihrem Knoten Ihr privates Ethereum-Netzwerk in 2 unterschiedlich benannten Ordnern erstellen (zum Beispiel: -- "datadir="/home/MyEthereumEbloc_1"und --datadir="/home/MyEthereumEbloc_2"), dies wird auch geth.ipcfür jeden einen anderen erstellen. ipc:/home/MyEthereumEbloc_1/geth.ipcund ipc:/home/MyEthereumEbloc_2/geth.ipc.

Später sollten Sie 2 verschiedene gethProzesse mit unterschiedlicher --portNummer ausführen --identity, --networkiddie Sie verbinden möchten, --rpcportleeren Port, den Sie verwenden könnten und --bootnodeden Sie verbinden möchten. Da 2 Organisationen ihre eigene private Blockchain haben, sind ihre IP- und Portnummer für jede Organisation einzigartig.

Zum Beispiel: Sie könnten auch folgende Befehle dazwischen nohup &ausführen geth, die im Hintergrund ausgeführt werden.

geth --port 3000 --networkid 12345 --identity node1 --nodiscover \
        --nat none --datadir="/home/MyEthereumEbloc_1" --rpc --rpcaddr="localhost"\
        --rpcport 8545 --rpccorsdomain="*"--ipcapi "admin,eth,net,web3,debug"\ 
        --bootnodes enode://$id@<ip_1>:<port_1>

-

 geth --port 3001 --networkid 54321 --identity node2 --nodiscover \
        --nat none --datadir="/home/MyEthereumEbloc_2" --rpc --rpcaddr="localhost"\
        --rpcport 8546 --rpccorsdomain="*" --ipcapi "admin,eth,net,web3,debug" \
        --bootnodes enode://$id@<ip_2>:<port_2>

inside nodejs: Since --rpcport 8545is linked to --bootnodes enode://$id@<ip_1>:<port_1>und Since --rpcport 8546is linked to --bootnodes enode://$id@<ip_2>:<port_2>können Sie auf die Blockchain zugreifen, die sich in Ihrer Organisation befindet, indem Sie verschiedene web3-Variablen (web3_1, web3_2) innerhalb erstellen nodejs.

var web3_1 = new Web3();
web3_1.setProvider(new web3_1.providers.HttpProvider('http://localhost:8545'));

var web3_2 = new Web3();
web3_2.setProvider(new web3_2.providers.HttpProvider('http://localhost:8546'));

if(!web3_1.isConnected()) console.log("not connected");
else                    console.log("connected");

if(!web3_2.isConnected()) console.log("not connected");
else                    console.log("connected");

Bitte beachten Sie, dass empfohlen wird, dass mindestens 8 GB RAM erforderlich sind, wenn Sie 2 Geth-Prozesse auf einem Computer ausführen, 4 GB RAM für jeden. https://ethereum.stackexchange.com/a/9906/4575

Meine Frage bezieht sich nicht darauf, 2 Knoten in einer Maschine auszuführen. es geht um zwei private Blockchains, die geografisch verteilt kommunizieren und Daten austauschen
Ich habe etwas hinzugefügt, das ist alles, was ich weiß. Aber Sie müssen immer noch verschiedene Geth-Prozesse im Hintergrund ausführen, um Zugriff auf die verschiedenen Blockchains zu haben, dann können sie einige Daten über einen Vertrag auf demselben Knoten teilen.