🌐 EOS-In-A-Box – начните использовать EOS уже сегодня! (@someguy123)
В декабре EOS Dawn V2 был запущен в тестовом режиме. А это значит, что теперь все желающие могут поиграться с EOS и его смарт-контрактами, трансферами и просматривать свои аккаунты.
К сожалению, EOS еще не опубликовали свои докер-образы в двоичном формате, но я решил опубликовать их самостоятельно. Также я портировал Steem-in-a-box, настроив его так, чтобы он лучше работал с EOS.
Эти докер-образы, в отличие от Steem-in-a-box, созданы из официального докер-файла в репозитории EOSIO/eos. Собрать EOS сложнее, поэтому я сэкономил время и использовал их докер, который работает просто отлично :)
Шаг 1. Берем сервер!
Выберите сервер-провайдера, который вам по нраву. Я рекомендую Privex, потому что он принимает STEEM :) (дисклеймер: я являюсь генеральным директором Privex Inc. – но наши услуги пользуются популярностью в сообществе).
Пока что сеть небольшая, поэтому будет достаточно VPS даже на 2 ГБ. Если вы планируете запускать ноду заверителя EOS (производителя) во время следующего запуска Тестнета или Главной сети, то лучше запастись не менее 8 или даже 16 ГБ оперативной памяти.
Шаг 2. Установка EOS-in-a-box
EOS-in-a-box производит установку докера, берет мой образ и запускает сервер с верно настроенными портами и правильными параметрами.
Давайте приступим:
apt update
apt install git curl wget
git clone https://github.com/someguy123/eos-docker.git
cd eos-docker
./run.sh install_docker
Это установит Докер. Если вы запустились как “ubuntu” или что-то подобное, рекомендуется выйти, а затем снова войти (закрыть SSH и открыть его снова), чтобы настроить свои права доступа.
Теперь давайте возьмем мой образ и загрузим EOS!
./run.sh install
Chris: вопрос: вы улучшили архитектуру shared_memory в EOS или все равно лучше кидать все в RAM, если ты заверитель/производитель?
Daniel Larimer: мы все еще используем прежний chainbase код из Steem
Josh: выходит, что 14 из 21 должны быть злоумышленниками
Daniel Larimer: нами разработана, но пока не интегрирована новая база данных совместной памяти, спроектированная для параллельного доступа
14 злоумышленников требуется для создания фальшивого необратимого блока
Как поясняет @dantheman – @dan, EOS все еще использует старый код shared_memory от Steem. Это означает, что для реального заверителя/производителя вы, очевидно, должны использовать /dev/shm (RAM-диск). EOS-in-a-box настроен для подключения /dev/shm к /shm, если вы хотите изменить свой config.ini
. Когда будет выпущена полноценная версия EOS, в EOS-in-a-box будет включена конфигурация, по умолчанию использующая /dev/shm с предварительно заданным списком сидов для быстрого развертывания.
В режиме тестирования это не имеет значения, так что давайте просто начнем.
./run.sh start
EOS будет запущен, вы можете это подтвердить вводом ./run.sh status
или docker ps
ubuntu@chris-eos:~/eos-docker$ ./run.sh status
Container exists?: YES
Container running?: YES
ubuntu@chris-eos:~/eos-docker$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
87f80dd1b318 eos "start_eosd.sh" 20 seconds ago Up 19 seconds seed
ubuntu@chris-eos:~/eos-docker$
Давайте, наконец, активируем API кошелька и перезапустим его.
nano data/config.ini
Добавьте в конец файла
plugin = eosio::wallet_api_plugin
Сохраните и закройте файл (для nano это CTRL-X, и введите yes для сохранения)
Теперь давайте перезапустим EOS:
./run.sh restart
Используем кошелек
Кошелек немного отличается от STEEM. Вот несколько примеров его использования:
Создать кошелек
ubuntu@chris-eos:~/eos-docker$ ./run.sh wallet create -n test
Creating wallet: test
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5KhAdia26ZWmvpPFPX6G3ppCpzPAaumHbmLgaKejtsQ13mNiS8g"
Закрыть кошелек
ubuntu@chris-eos:~/eos-docker$ ./run.sh wallet lock -n test
Locked: test
Открыть кошелек
ubuntu@chris-eos:~/eos-docker$ ./run.sh wallet unlock -n test
password: Unlocked: test
Импортировать ваш приватный ключ
(да, это рандомный приватный ключ. нет, он не содержит сколько-нибудь токенов EOS)
ubuntu@chris-eos:~/eos-docker$ ./run.sh wallet import -n test 5JtrsfV1SaQmuSWV4qpwqHqK2Pk4idvwskumZKWF4DXYJRn9iWE
imported private key for: EOS5GjCUAzNha1dmLVgtY2JxqjHZ9Rb33FMWdEsmUEM6sSd7t7nAG
Используем клиент
Помимо кошелька у EOS есть свой “клиент”. Чтобы сделать его простым в обращении, вы можете использовать
./run.sh client
Пример
ubuntu@chris-eos:~/eos-docker$ ./run.sh client version client
Build version: 9703495c
Запрос публичного тестнета
Для запроса публичного тестнета вы должны настроить свой хост на testnet1.eos.io – в настоящее время не существует безопасного р2р функционала, поэтому вы должны направить свой клиент на их публичный сервер; вы не можете подключить локальный тестнет к публичному тестнету.
Chris: так как мне подключить свой EOS к главному тестнету?
Kevin Heifner: В предстоящем релизе планируется выполнять подключение при помощи eosd. Совсем скоро мы анонсируем выпуск.
Пример – Получить блок
ubuntu@chris-eos:~/eos-docker$ ./run.sh client -H testnet1.eos.io -p 80 get block 10000
{
"previous": "0000270f69c1a22dc6463335325b01ac03b25af8891dfc88ac0418f88b62f062",
"timestamp": "2017-12-04T22:41:46",
"transaction_merkle_root": "0000000000000000000000000000000000000000000000000000000000000000",
"producer": "initq",
"producer_changes": [],
"producer_signature": "1f77718a0efb56ef43a0adcd10108ec058aa9760b2a3bc59dcae967637a2ac72dc68077d232026de5d929a1d55a4bbd0bc4d040d44dc2380ac4e1107f1a61e170b",
"cycles": [],
"id": "00002710ebdfd9569d544ed746bb49d7a93e813190f3b4d138a0874d4da05cdd",
"block_num": 10000,
"ref_block_prefix": 3612234909
}
Узнаем свой юзернейм
Чтобы узнать свой юзернейм в публичном тестнете, отправляйтесь по ссылке
https://eosio.github.io/genesis/tools/account-name/index.html и введите ваш публичный ключ EOS, либо ваш ETH адрес, использованный для покупки токенов.
После этого вы можете увидеть свой аккаунт с помощью клиента:
Пример
ubuntu@chris-eos:~/eos-docker$ ./run.sh client -H testnet1.eos.io -p 80 get account yourname
{
"account_name": "yourname",
"eos_balance": "999570.0000 EOS",
"staked_balance": "0.0000 EOS",
"unstaking_balance": "0.0000 EOS",
"last_unstaking_time": "1969-12-31T23:59:59",
"permissions": [{
...
Могу ли я настроить заверителя (производителя)?
Нет. Смотрите предыдущий скриншот в разделе “Используем клиент”. В настоящее время невозможно запустить производителя или даже подключить EOSD к основной сети.
Но, по крайней мере, это раннее доказательство концепции, с которым можно поиграться :)
Думаю, что как минимум уже можно писать смарт-контракты, однако я еще не пробовал. Поэкспериментирую с ними в ближайшие дни, когда все будет отлажено.
Оригинал поста: ЗДЕСЬ