From 9f31ed13534b0f56bbdf8f70a98fedf45733a4ed Mon Sep 17 00:00:00 2001 From: Robert Martin-Legene <robert@nic.ar> Date: Fri, 27 Sep 2019 12:42:27 -0300 Subject: [PATCH] Update README.md --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/README.md b/README.md index 40f488d..5200526 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,71 @@ ## Un nodo transaccional para BFA. +### Caracteristicas + +El `bfanodo` es un docker que podes bajar y correr en tu propia +maquina o datacenter. Se va a levantar como un nodo transaccional, +**sin cuentas**, abierto a todo el mundo. +Si no queres brindar este servicio a la red, podes usar ipfilter o +(mas facil) no publicar el puerto 8545 (atalo (bind) a 127.0.0.1 +solamente, igual que puerto 8546). Para hacer eso, tenes que cambiar +los parametros `-p` en `start.sh`. + +Como ves en el ejemplo abajo, puerto 30303/tcp y 8545/tcp estan abiertos al +mundo (0.0.0.0 = INADDR_ANY) y 8546/tcp esta abierto solamente para +conecciones de tu maquina. +``` +$ docker container port bfanodo +30303/tcp -> 0.0.0.0:30303 +8545/tcp -> 0.0.0.0:8545 +8546/tcp -> 127.0.0.1:8546 +``` + +Es importante entender que "tu maquina" incluye otros dockers en +la misma maquina, si las has conectado con el parametro `--link`, +como se puede ver aqui: +``` +docker run --rm -it --link bfanodo alpine env | grep BFANODO_PORT | sort +BFANODO_PORT_30303_TCP_ADDR=172.17.0.2 +BFANODO_PORT_30303_TCP_PORT=30303 +BFANODO_PORT_30303_TCP_PROTO=tcp +BFANODO_PORT_30303_TCP=tcp://172.17.0.2:30303 +BFANODO_PORT_30303_UDP_ADDR=172.17.0.2 +BFANODO_PORT_30303_UDP_PORT=30303 +BFANODO_PORT_30303_UDP_PROTO=udp +BFANODO_PORT_30303_UDP=udp://172.17.0.2:30303 +BFANODO_PORT_8545_TCP_ADDR=172.17.0.2 +BFANODO_PORT_8545_TCP_PORT=8545 +BFANODO_PORT_8545_TCP_PROTO=tcp +BFANODO_PORT_8545_TCP=tcp://172.17.0.2:8545 +BFANODO_PORT_8546_TCP_ADDR=172.17.0.2 +BFANODO_PORT_8546_TCP_PORT=8546 +BFANODO_PORT_8546_TCP_PROTO=tcp +BFANODO_PORT_8546_TCP=tcp://172.17.0.2:8546 +BFANODO_PORT=tcp://172.17.0.2:8545 +``` +Los puertos estan disponibles de los otros dockers tambien sin usar +`--link` pero no van a estar publicados en variables del entorno. +``` +docker run --rm alpine sh -c "date | nc 172.17.0.2 8545" ; echo +HTTP/1.1 400 Bad Request +Content-Type: text/plain; charset=utf-8 +Connection: close + +400 Bad Request +``` +(puerto abierto) + +### Cuentas + +Una leccion aprendido durante el primer año de BFA es, que el `geth` +normalmente no necesita una cuenta asociado (eso obviamente es distinto si +lo usas como nodo sellador). + +Las cuentas deben estar asociados a los applicaciones que se conecta al +nodo. Ese hace es sistema mas seguro, y **cada applicacion necesita su +propia cuenta**. + ### Para usar ``` -- GitLab