MMS

Cosmos — это проект, создающий «Интернет блокчейнов», которые будут связаны друг с другом через протокол IBC. В отличие от многих блокчейнов, где ваше приложение должно будет платить сборы каким-то странным парням с комнатами, полными графических процессоров, в Cosmos вы строите свою собственную цепочку, и большая часть комиссий за транзакции может идти держателям токенов вашего блокчейна, а валидаторы взимают 0–10%. транзакционных сборов за эксплуатацию инфраструктуры.

Создание собственного блокчейна также дает вам большую гибкость. Если Биткойн — это карманный калькулятор с несколькими функциями, а Эфириум — графический калькулятор с возможностью загрузки некоторых ограниченных скриптов, то Cosmos — это Ruby on Rails. Вы начинаете с полнофункционального базового приложения, созданного из надежного набора библиотек, и настраиваете в нем все и вся.

Базовое приложение, с которого вы начинаете, называется gaia . Это то же программное обеспечение, на котором работает сеть Cosmos Hub. В этом сообщении блога приведены инструкции по запуску цепочки с двумя валидаторами, хотя было бы легко адаптировать эти инструкции к большей группе валидаторов.

Сначала установите все. Эти шаги одинаковы, если вы инициализируете новую цепочку Cosmos или присоединяетесь к чьей-то еще. Они работают на новых дроплетах DigitalOcean Ubuntu, но, вероятно, будут работать и на многих других системах Linux, хотя вам, возможно, придется установить другие зависимости, такие как Git.

Загрузите и установите Golang (с https://golang.org/doc/install )

wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz 
tar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz 
export PATH=$PATH: /usr/местные/перейти/бен

Настройте некоторые необходимые переменные среды Golang (из https://github.com/cosmos/gaia/blob/master/docs/installation.md )

mkdir -p $HOME/go/bin 
echo "export GOPATH=$HOME/go" >> ~/.bash_profile 
echo "export PATH=\$PATH:\$GOPATH/bin" >> ~/.bash_profile 
source ~/. bash_profile

Получить некоторые инструменты сборки, используемые для сборки двоичных файлов

apt install make 
apt install gcc

Загрузите gaia, кодовую базу Cosmos Hub

mkdir -p $GOPATH/src/github.com/cosmos 
cd $GOPATH/src/github.com/cosmos 
git clone https://github.com/cosmos/gaia

Создайте двоичные файлы

cd gaia && сделать установку

Убедитесь, что он был установлен правильно

версия gaiad --long 
версия gaiacli --long

gaiacliнапример, должен вывести что-то похожее на:

space-sdk: 0.33.0 
git commit: 7b4104aced52aa5b59a96c28b5ebeea7877fc4f0 
теги сборки: netgo ledger 
go version go1.12 linux/amd64

Теперь пришло время настроить начальные условия для вашей сети с помощью файла с именем genesis.json. Это очень важно для доказательства цепочки ставок, поскольку все остальное, что произойдет в течение жизни цепочки, будет исходить из полномочий и ценности, предоставленных здесь. Например, в Cosmos Hub genesis.jsonфайл содержал количество атомов, купленных участниками краудсейла.

Процесс запуска сети Cosmos состоит из нескольких шагов, но каждый шаг важен. Участники системы блокчейна доверяют процессу, а не друг другу, и каждый шаг этого процесса позволяет им убедиться, что все кошерно.

  1. Кто-то создает genesis.jsonфайл с начальным распределением токенов и отправляет его всем стартовым валидаторам для проверки.
  2. Если валидаторы считают, что genesis.jsonфайл действителен, они подписывают gentxs, чтобы быть добавленными в качестве валидаторов в цепочку.
  3. Кто-то компилирует все gentxs и добавляет их в genesis.json, снова рассылая всем валидаторам для проверки.
  4. Если валидаторы считают, что код genesis.jsonвсе еще действителен, они запускают свои узлы и начинают производить блоки.

Мы будем использовать приведенные здесь инструкции для «одноузловой, локальной, ручной тестовой сети», но мы изменим их для создания многоузловой, удаленной, ручной сети. Это предполагает, что у вас есть два сервера, настроенных в соответствии с приведенными выше инструкциями. Если вы настроили только один, настройте еще один прямо сейчас.

Шаг 1.

Следуйте этим инструкциям для валидатора 1:

# Эти команды выполняются на валидаторе 1# Вы можете запустить все эти команды из своего домашнего каталога 
cd $HOME# Инициализируйте файл genesis.json, который поможет вам загрузить сеть 
gaiad init --chain-id=mychain validator1# Создайте ключ для хранения вашей учетной записи валидатора 
gaiacli keys add validator1# Добавьте этот ключ в массив genesis.app_state.accounts в файле генезиса 
# ПРИМЕЧАНИЕ: эта команда позволяет вам установить количество монет. Убедитесь, что на этом аккаунте есть монеты 
# с номиналом genesis.app_state.staking.params.bond_denom, по умолчанию используется 
gaiad add-genesis-account $(gaiacli keys show validator -a) 1000000000stake,1000000000footoken

Теперь переключитесь на валидатор 2.

# Эти команды выполняются на валидаторе 2# Создайте ключ для хранения вашей учетной записи валидатора 
gaiacli keys add validator2# Показать адрес 
gaiacli keys show validator2 -a

Скопируйте вывод ключа второй командой и переключитесь обратно на валидатор 1:

# Эти команды выполняются на валидаторе 1# Добавить адрес и распределение валидатора2 в genesis.json 
gaiad add-genesis-account <адрес скопирован из валидатора2> 1000000000stake,1000000000footoken# Экспорт genesis.json 
gaiad export

Скопируйте вывод genesis.json второй командой и переключитесь обратно на валидатор 2:

# Эти команды выполняются на валидаторе 2# Сохраните genesis.json из последнего шага в: 
$HOME/.gaiad/config/genesis.json

Шаг 2.

Теперь пришло время сделать gentxs

# Эти команды выполняются на валидаторе 2gaiad gentx --name validator2# Это должно вывести примерно следующее 
:# Скопируйте gentx из файла, в котором он был сохранен

Шаг 3.

Вернуться к валидатору 1

# Эти команды выполняются на валидаторе 1# Сохраните gentx из validator2 в: 
# /root/.gaiad/config/gentx/<имя gentx-файла из validator2>.json# Теперь создайте файл gentx для validator1 
gaiad gentx --name jehan# Теперь сгенерируйте окончательный файл genesis.json 
gaiad collect-gentxs

Вернитесь к валидатору 2 и снова сохраните файл genesis.json, созданный валидатором 1.

# Эти команды выполняются на валидаторе 2# Сохраните genesis.json из последнего шага в: 
$HOME/.gaiad/config/genesis.json

Шаг 4.

Теперь работа gaiad startна обоих узлах должна запустить ваш блокчейн. Возможно, вам придется сначала начать один или другой. Вы, вероятно, захотите использовать что-то вроде systemd , чтобы валидаторы работали при перезапуске системы, но это выходит за рамки этой статьи.

В следующем посте мы поговорим о том, как отправить монеты на другой аккаунт и как их добавить в набор валидаторов.

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *