¿Podemos conectar 2 o más cadenas de bloques privadas? [duplicar]

Digamos que hay 2 organizaciones y cada una tiene sus propias cadenas de bloques privadas en una región geográfica diferente.

Ahora necesitan tener una colaboración y compartir parte de los datos entre ellos.

¿Es posible conectar estas 2 cadenas de bloques privadas y tener acceso controlado entre sí?

hola badr.. la publicación anterior dice que aún no es posible con ethereum. ¿Hay alguna hoja de ruta que admita esta característica?
puede pedirle al equipo de gitter que obtenga una respuesta precisa

Respuestas (1)

Bueno, sí, eso es posible, también puede conectar 2 de ellos en paralelo en función de su RAM, pero lo más probable es que obtenga un out of memory errorsi pudiera intentar conectar 3 o más en paralelo. Pero no creo que sea posible compartir cadenas de bloques, sus datos entre sí,

¿Cómo puedo crear varias cadenas de bloques conectadas? :

Solo con Ethereum no es posible (todavía), a menos que implemente una solución personalizada.

Pero cuando ejecuta varios gethprocesos para cada cadena de bloques privada en segundo plano, al usarla nodejspuede tener una conexión con cada cadena de bloques diferente y sus contratos, y pueden enviarse información entre sí.

Sugeriría conectar cada cadena de bloques privada individualmente, cada una tendrá su propia carpeta para almacenar su cadena de bloques.

Primero, en su nodo, debe crear su red ethereum privada en 2 carpetas con nombres diferentes (por ejemplo: -- "datadir="/home/MyEthereumEbloc_1"y --datadir="/home/MyEthereumEbloc_2"), esto también creará diferentes geth.ipcpara cada uno. ipc:/home/MyEthereumEbloc_1/geth.ipcy ipc:/home/MyEthereumEbloc_2/geth.ipc.

Más tarde, debe ejecutar 2 gethprocesos diferentes con un --portnúmero diferente --identity, --networkidque desea conectar, --rpcportpuerto vacío que podría usar y --bootnodeque le gustaría conectar. Dado que 2 organizaciones tienen su propia cadena de bloques privada, su IP y número de puerto serán únicos para cada una.

Por ejemplo: también puede ejecutar los siguientes comandos entre nohup &los cuales se ejecutarán gethen segundo plano.

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: desde que --rpcport 8545está vinculado a --bootnodes enode://$id@<ip_1>:<port_1>y desde que --rpcport 8546está vinculado a --bootnodes enode://$id@<ip_2>:<port_2>usted puede acceder a la cadena de bloques que está en su organización creando diferentes variables web3 (web3_1, web3_2) dentro 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");

Tenga en cuenta que si ejecuta 2 procesos geth en una máquina, se recomienda que se requiera un mínimo de 8 GB de RAM, 4 GB de RAM para cada uno. https://ethereum.stackexchange.com/a/9906/4575

mi pregunta no se trata de ejecutar 2 nodos en una máquina. se trata de dos cadenas de bloques privadas distribuidas geográficamente comunicándose y compartiendo datos
Hice algunas adiciones, eso es todo lo que sé. Pero aún debe ejecutar diferentes procesos de geth en segundo plano para tener acceso a las diferentes cadenas de bloques, de lo que pueden compartir algunos datos a través del contrato en el mismo nodo.