Размер шрифта
-
+

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - стр. 18


>$ go version

>go version go1.9.6 linux/arm

Установка Geth и Swarm

Установка Geth и Swarm выполняется аналогично тому, как мы это делали на предыдущем уроке.

Загрузите исходный код Geth из репозитория на GitHub:


>$ mkdir -p $GOPATH/src/github.com/ethereum

>$ cd $GOPATH/src/github.com/ethereum


>$ git clone https://github.com/ethereum/go-ethereum

>$ cd go-ethereum

>$ git checkout master


>$ go get github.com/ethereum/go-ethereum


Запустите компиляцию клиента Geth и Swarm:


>go install -v ./cmd/geth

>go install -v ./cmd/swarm


Если при компиляции появились ошибки, попробуйте установить Go другой версии. Перед этим удалите все каталоги, созданные в процессе предыдущей установки.

Если же все хорошо, то осталось только проверить версию установленного Geth и Swarm:


>$ geth version

>Geth

>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),

Страница 18