Обновление коннекторов [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)
ноды по умолчанию:
- https://steemd.privex.io
- https://rpc.steemviz.com
- https://api.steemit.com
- https://rpc.buildteam.io
- https://steemd.pevo.science
- https://steemd.minnowsupportproject.org
новый коннектор для ГОЛОСа GolosHttpJsonRpcConnector
Не существует паблик HTTP апи точек для ГОЛОСа, поэтому вам необходима своя нода и настроить HTTP в конфиге
Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13, активный помочник @semasping
С каждым коммитом мир становится лучше!