Version: 1.8.9-unstable
Architecture: arm
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.9.6
Operating System: linux
GOPATH=/home/book/go
GOROOT=/usr/local/go
$ swarm version
Swarm
Version: 1.8.9-unstable
Network Id: 0
Go Version: go1.9.6
OS: linux
GOPATH=/home/book/go
GOROOT=/usr/local/go
Обратите внимание, что команда geth version сообщает о том, что она работает на процессоре с архитектурой ARM.
Создаем приватный блокчейн
На предыдущем уроке мы создавали приватный блокчейн, подготовив для него первичный блок в файле genesis.json. Затем мы создали в домашнем каталоге пользователя book рабочий каталог node1, создали аккаунт, запустили инициализацию узла и, наконец, запустили узел нашего блокчейна. При этом был создан файл DAG с направленным ациклическим графом и запущен майнинг. В другой консоли мы подключились к нашему узлу и выдали там несколько команд Web3.
На этот раз мы сделаем все намного проще. Создадим рабочий каталог node1 для размещения данных блокчейна:
$ mkdir node1
Теперь запустим узел приватной сети при помощи следующей команды:
$ geth –datadir node1 –networkid 98760 –dev –rpc –rpcapi="db,eth,net,web3,personal,web3" console
В окне консоли появятся сообщения о запуске узле сети.
Сохраните команду запуска узла в пакетном файле с именем start_node.sh (листинг 3.1.).
Листинг 3.1. Файл start_node.sh
geth –datadir node1 –networkid 98760 –dev –rpc –rpcapi="db,eth,net,web3,personal,web3" console
Обратите внимание, что мы указали здесь те же значения параметров datadir, networked, rpc и rpcapi, что и на предыдущем уроке.
Для подключения к запущенному таким способом узлу вы можете использовать ту же самую команду, что и раньше:
$ geth –datadir node1 –networkid 98760 attach ipc://home/book/node1/geth.ipc
Запишите команду подключения в файл attach_node.sh для удобства (листинг 3.2.).
Листинг 3.2. Файл attach_node.sh
geth –datadir node1 –networkid 98760 attach ipc://home/book/node1/geth.ipc
Проверка учетной записи и баланса
Запустите файл attach_node.sh и в приглашении консоли Geth введите команду accounts:
> web3.eth.accounts
["0xd902f8405a6108e8bd9343d1bfccf21a081d2897"]
Оказывается, в нашем тестовом узле уже определен пользователь, хотя мы не создавали его явным образом и не задавали пароль, как на прошлом уроке. У этого пользователя пустой пароль.
Попробуйте также ввести команду web3.version:
> web3.version
{
api: "0.20.1",
ethereum: "0x3f",
network: "98760",
node: "Geth/v1.8.9-unstable/linux-arm/go1.9.6",
whisper: "6.0",
getEthereum: function(callback),
getNetwork: function(callback),
getNode: function(callback),
getWhisper: function(callback)