¿Cómo obtiene Mist acceso a todas las cuentas en el nodo privado Geth de la cadena de bloques?

Tengo un nodo privado de blockchain alojado en algún lugar de la nube. Y estoy usando Mist para acceder a las cuentas dentro de ese nodo.

Dado que es un nodo privado, solo almaceno la clave privada dentro de ese nodo y soy plenamente consciente de que no es seguro hacerlo, es solo un patio de recreo para mí. Por supuesto que no lo haré para mainnet/producción.

Cuando ejecuté Mist usando el siguiente comando, Mist mostró mágicamente todas las cuentas que tengo dentro de ese nodo (está ejecutando Geth):

$ /Applications/Mist.app/Contents/MacOS/Mist --rpc http://xxx.xxx.xxx.xxx:8545 --swarmurl null

Por curiosidad, tengo las siguientes preguntas:

  1. ¿Cómo pudo Mist acceder a todas las cuentas que tengo dentro de ese nodo?
  2. ¿Significa que Mist también puede ver las claves privadas dentro de ese nodo?
  3. Además de las banderas --rpcy --swarmurl, ¿dónde puedo obtener todas las banderas CLI de Mist disponibles?

Respuestas (1)

¿Cómo pudo Mist acceder a todas las cuentas que tengo dentro de ese nodo?

El RPC de Geth expone el eth_*espacio de nombres estándar de los métodos, que incluye una llamada a eth_accounts . Esto enumera todas las cuentas disponibles en el nodo.

¿Significa que Mist también puede ver las claves privadas dentro de ese nodo?

No, esto no es posible. Si se proporciona la contraseña o si la cuenta ya está desbloqueada, Mist puede firmar transacciones, pero no puede acceder a la clave.

Además de las banderas --rpc y --swarmurl, ¿dónde puedo obtener todas las banderas de la CLI de Mist disponibles?

Usage: /Applications/Mist.app/Contents/MacOS/Mist --help [Mist options] [Node
options]

Mist options:
  --mode, -m              App UI mode: wallet, mist.  [string] [default: "mist"]
  --node                  Node to use: geth, eth        [string] [default: null]
  --network               Network to connect to: main, test
                                                        [string] [default: null]
  --rpc                   Path to node IPC socket file OR HTTP RPC hostport (if
                          IPC socket file then --node-ipcpath will be set with
                          this value).                                  [string]
  --swarm                 Enable Swarm on start.                       [boolean]
  --swarmurl              URL serving the Swarm HTTP API. If null, Mist will
                          open a local node.
                                     [string] [default: "http://localhost:8500"]
  --gethpath              Path to Geth executable to use instead of default.
                                                                        [string]
  --ethpath               Path to Eth executable to use instead of default.
                                                                        [string]
  --ignore-gpu-blacklist  Ignores GPU blacklist (needed for some Linux
                          installations).                              [boolean]
  --reset-tabs            Reset Mist tabs to their default settings.   [boolean]
  --loglevel              Minimum logging threshold: info, debug, error, trace
                          (shows all logs, including possible passwords over
                          IPC!).                      [string] [default: "info"]
  --syncmode              Geth synchronization mode: [fast|light|full|nosync]
                                                                        [string]
  --version, -v           Display Mist version.                        [boolean]
  --skiptimesynccheck     Disable checks for the presence of automatic time sync
                          on your OS.                                  [boolean]

Node options:
  -  To pass options to the underlying node (e.g. Geth) use the --node- prefix,
     e.g. --node-datadir

Options:
  -h, --help  Show help                                                [boolean]