Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
php-node-client
7 лет назад

Обновление коннекторов [PHP Graphene Node Client v4.0.3]

php-graphene-node-client

Это PHP API клиент для Steem/GOLOS блокчейнов

Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13, активный контрибьютор @semasping

В релизе v4.0.3

  • переименованы HTTP коннекторы;
  • HTTP Соннекторы используют нативный CURL, composer пакет 'fguillot/json-rpc' был удален;
  • в HttpJsonRpcConnectorAbstract/WSConnectorAbstract некоторые свойства были преобразованы в статические и в конструктор добавлен метод сортировки нод по таймауту;
  • закрывается старое соединение перед новым в WSConnectorAbstract;
  • в SteemitHttpJsonRpcConnector были добавлены новые ноды (всего 6);
  • новый коннектор для ГОЛОСа GolosHttpJsonRpcConnector;

переименованы HTTP коннекторы

Если вы используете HTTP коннекторы из php-graphene-node-client вам необходимо обновить имена HTTP коннекторов как показано ниже

//было
use GrapheneNodeClient\Connectors\Http\SteemitHttpConnector;

$connector = new SteemitHttpConnector(500);

//стало
use GrapheneNodeClient\Connectors\Http\SteemitHttpJsonRpcConnector;

$connector = new SteemitHttpJsonRpcConnector(500);

//если вы наслеуюетесь от абстрактного коннектора
//было 
use GrapheneNodeClient\Connectors\Http\HttpConnectorAbstract;

class SteemitHttpConnector extends HttpConnectorAbstract
{
   ...
}

//стало
use GrapheneNodeClient\Connectors\Http\HttpJsonRpcConnectorAbstract;

class SteemitHttpJsonRpcConnector extends HttpJsonRpcConnectorAbstract
{
   ...
}

HTTP Соннекторы используют нативный CURL, composer пакет 'fguillot/json-rpc' был удален

Пакет 'fguillot/json-rpc' был удален из composer.json и HTTP коннектор использует CURL.

в HttpJsonRpcConnectorAbstract/WSConnectorAbstract некоторые свойства были преобразованы в статические и в конструктор добавлен метод сортировки нод по таймауту

Клевая фича для скриптов где вы делаете вызовы много раз, например в кроновских скриптах.
Когда вы инициализируете коннектор вы можете установить таймаут ответа в сек для WS мс для HTTP, если ноды не проходят првоерку, они будут удалены из списка нод $nodeURL, а прощедшие проверку сортируются по таймауту.

как использовать

//WS
use GrapheneNodeClient\Connectors\WebSocket\SteemitWSConnector;

$connector = new SteemitWSConnector(1); //1 sec only during test of timeouts

//HTTP
use GrapheneNodeClient\Connectors\Http\SteemitHttpJsonRpcConnector;

$connector = new SteemitHttpJsonRpcConnector(500); //500 ms only during test of timeouts

Если вы наследовались от HttpJsonRpcConnectorAbstract/WSConnectorAbstract вам необходимо сделать свойство $nodeURL статическим как показано ниже

//было
class * extends HttpJsonRpcConnectorAbstract
{
    /**
     * https or http server
     *
     * if you set several nodes urls, if with first node will be trouble
     * it will connect after $maxNumberOfTriesToCallApi tries to next node
     *
     * @var string
     */
    protected $nodeURL = ['https://steemd.privex.io', 'https://rpc.steemviz.com', 'https://api.steemit.com', 'https://rpc.buildteam.io', 'https://steemd.pevo.science', 'https://steemd.minnowsupportproject.org'];
}

//стало
class * extends HttpJsonRpcConnectorAbstract
{
    /**
     * https or http server
     *
     * if you set several nodes urls, if with first node will be trouble
     * it will connect after $maxNumberOfTriesToCallApi tries to next node
     *
     * @var string
     */
    protected static $nodeURL = ['https://steemd.privex.io', 'https://rpc.steemviz.com', 'https://api.steemit.com', 'https://rpc.buildteam.io', 'https://steemd.pevo.science', 'https://steemd.minnowsupportproject.org'];
}

закрывается старое соединение перед новым в WSConnectorAbstract

Когда вы подключаетесь к резервной ноде старое соединение не закрывалось, это было исправлено

в SteemitHttpJsonRpcConnector были добавлены новые ноды (всего 6)

ноды по умолчанию:

новый коннектор для ГОЛОСа GolosHttpJsonRpcConnector

Не существует паблик HTTP апи точек для ГОЛОСа, поэтому вам необходима своя нода и настроить HTTP в конфиге


Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13, активный помочник @semasping

С каждым коммитом мир становится лучше!

Поддержите меня как делегата (@t3ran13)

https://golos.io/~witnesses

!!!Голосуйте за активных делегатов и голос быстро пойдет в гору! Нам нужны те, кто несет пользу для голоса!!!

0
9.936 GOLOS
На Golos с March 2017
Комментарии (3)
Сортировать по:
Сначала старые