GOLOS
RU
EN
UA
vik
2 года назад

🔬 Публичные ноды API.GOLOS.CF + 17.GOLOS.CF (Дополнительная публичная нода с новым API от goloscore)

Я как и все жду хардфорка, и как у всех для меня важна экономическая составляющая. Но поскольку я редко пишу в блог, для меня экономика в большей степени связана со стоимостью серверов и временем на обслуживание нод, а не кривой вознаграждений или бенефициарством с постов набравших 5 копеек :)
Потому в обновлении меня больше интересует производительность нод и новый API

Сегодня я запустил дополнительную публичную api-ноду wss://17.golos.cf на которую установлена 0.17-я ветка от @goloscore

ЭТО НЕ ТЕСТНЕТ, НОДА СИНХРОНИЗИРОВАНА С ЖИВЫМ БЛОКЧЕЙНОМ

При этом моя основная нода wss://api.golos.cf работает на текущей версии 0.16.4 - если вы используете ее, большая просьба переключится на новую ноду для "живых" тестов производительности и багов нового железа.
Нода синхронизирована с текущим блокчейном и по части экономики блокчейна до 4-го апреля работает в режиме 0.16.4, после она автоматически будет сигнализировать о новой экономике
#define STEEMIT_HARDFORK_0_17_TIME 1522832400 // 4 apr 2018 12:00:00 MSK

  • Удаление лимита вложенности комментариев
  • Окно выплат - неделя, вместо двух текущих - день и месяц
  • Возможность установить процент отката бенефактору при публикации поста
  • Линейная кривая вознаграждений

Вне зависимости от того, сколько делегатов установят новые ноды - перечисленные опции активируются только 4-го апреля. Но новым API пользоваться можно уже сейчас, а после 4-го апреля не останется альтернатив, потому считаю важным начать тестовую миграцию как можно скорее для выявления багов. Они наверняка есть. Как и баунти :)
В зависимости от своего рабочего стека можете оставлять issue в репозиториях библиотек
https://github.com/GolosChain/golos-js
https://github.com/GolosChain/golos-python
https://github.com/GolosChain/golos-php
https://github.com/GolosChain/golos-go
https://github.com/GolosChain/golosj

И непосредственно golosd:
https://github.com/GolosChain/golos/issues

JavaScript

Если вы использовали golos-js ранее - для нового api вам нужно поставить актуальную версию библиотеки командой:
npm i golos-js@0.6.1

И далее

const golos = require('golos-js')
golos.config.set('websocket','wss://17.golos.cf' )

Далее убедитесь, что в ваших скриптах нет методов которые больше не поддерживаются
⛔️ get_state aka golos.api.getState()
⛔️ get_api_by_name
⛔️ login_api

Если вы используете вебсокеты без библиотеки golos-js, следует изменить формат вызова

БЫЛО (Пример отправки запроса на получение блока № 12345):

ws.send(JSON.stringify({ 
            id: 1,
            method: 'call', 
            params: ["database_api","get_block",[12345]]
})

СТАЛО (Вам нужно просто добавить в вызов jsonrpc: '2.0'):

ws.send(JSON.stringify({ 
            id: 1,
      👉 jsonrpc: '2.0',
            method: 'call', 
            params: ["database_api","get_block",[12345]]
})

Однако в таком виде большинство методов либо не работает, либо работает не совсем так как задумано.
Следует учитывать, что методы группированы по API от которых зависят. Так например get_block зависит от database_api, а вот get_active_votes уже связан с новым плагином social_network.

Позднее я подготовлю статью с описанием методов, а пока проще использовать готовые библиотеки

Примеры использования golos-js

На скрине пример того, как совершить несколько переводов одной транзакцией используя библиотеку golos-js для nodejs:
JS.PNG
Код

Результат

Инсталляция собственной ноды 0.17.0

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

Установка зависимостей:

sudo apt-get -y upgrade && sudo apt-get -y install git cmake g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev libssl-dev libncurses5-dev doxygen libreadline-dev dh-autoreconf screen

Установка golosd 0.17.0

git clone https://github.com/GolosChain/golos && cd golos && git checkout tags/v0.17.0 && git submodule update --init --recursive && cmake -DCMAKE_BUILD_TYPE=Release . && make -j$(nproc)

Загрузка снепшота

wget https://github.com/GolosChain/golos/raw/master/share/golosd/snapshot5392323.json

./golosd
CTRL+C


Подготовка среды:
Открыть в редакторе nano /etc/fstab
Добавить shm none /dev/shm tmpfs defaults,size=64G 0 0
Перемонтировать mount -o remount /dev/shm

Для эффективности настроек выше RAM и виртуальной озу в сумме должно быть не меньше 64GB

Конфигурация - /golos/programs/golosd/witness_node_data_dir/config.ini

plugin = social_network database_api network_broadcast_api

seed-node = 5.9.18.213:4243
seed-node = 52.32.75.69:4243
seed-node = 52.57.156.202:4243
seed-node = 88.99.13.48:4243
seed-node = golos-seed.arcange.eu:4243
seed-node = golos-seed.esteem.ws:4243
seed-node = golosnode.com:4243
seed-node = 138.68.101.115:4243
seed-node = golos.imcoins.org:2001
seed-node = 178.62.224.148:4242

shared-file-dir = /dev/shm
shared-file-size = 64G

rpc-endpoint =  127.0.0.1:9090
rpc-http-endpoint = 127.0.0.1:9091 
rpc-http-allowip = 127.0.0.1

Запускаем golosd в фоновом окне
screen -S G
В папке golos/programs/golosd: ./golosd --resync

Выходим их окна
CTRL+A+D
При необходимости заходим:

screen -x G

После завершения синхронизации API доступно по localhost:9090 (или по внешнему адресу, домену, см. инструкцию)

Моя нода доступна по адресу wss://17.golos.cf

2
119.496 GOLOS
На Golos с January 2017
Комментарии (27)
Сортировать по:
Сначала старые