Wie erhält Mist Zugriff auf alle Konten im privaten Blockchain-Geth-Knoten?

Ich habe einen privaten Blockchain-Knoten, der irgendwo in der Cloud gehostet wird. Und ich verwende Mist, um auf die Konten innerhalb dieses Knotens zuzugreifen.

Da es sich um einen privaten Knoten handelt, speichere ich den privaten Schlüssel einfach in diesem Knoten und bin mir vollkommen bewusst, dass dies nicht sicher ist – es ist nur ein Spielplatz für mich. Natürlich werde ich es nicht für Mainnet/Produktion tun.

Als ich Mist mit dem folgenden Befehl ausführte, zeigte Mist auf magische Weise alle Konten an, die ich in diesem Knoten habe (es läuft Geth):

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

Aus Neugier habe ich folgende Fragen:

  1. Wie konnte Mist auf alle Konten zugreifen, die ich in diesem Knoten habe?
  2. Bedeutet das, dass Mist auch die privaten Schlüssel in diesem Knoten sehen kann?
  3. Wo kann ich außer --rpcden Flags und alle verfügbaren Mist-CLI-Flags erhalten?--swarmurl

Antworten (1)

Wie konnte Mist auf alle Konten zugreifen, die ich in diesem Knoten habe?

Der RPC von Geth legt den Standardnamensraum eth_*von Methoden offen, der einen eth_accounts- Aufruf enthält. Dies listet alle verfügbaren Konten auf dem Knoten auf.

Bedeutet das, dass Mist auch die privaten Schlüssel in diesem Knoten sehen kann?

Nein das ist nicht möglich. Wenn das Passwort angegeben oder das Konto bereits entsperrt ist, kann Mist Transaktionen signieren, aber nicht auf den Schlüssel zugreifen.

Wo kann ich außer den Flags --rpc und --swarmurl alle verfügbaren Mist-CLI-Flags erhalten?

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]