Новый функционал и фиксы [PHP Graphene Node Client v4.0.0 & v4.0.1]
PHP Graphene Node Client
Это PHP API клиент для Steem/GOLOS блокчейнов
Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13, активный помочник @semasping
В релизе v4.0.0
- формат запросов изменен на json-rpc2.0
- одиночные команды перемещены в Single namespace
- новый класс агрегатор команд Commads
- исправлен критических баг в сериализаторе строк
В релизе v4.0.1
- исправлен критический баг коннекторов
- обновлена версия php в composer.json
Формат запросов изменен на json-rpc2.0
Если вы используете коннекторы из php-graphene-node-client, теперь они посылают запросы к нодам STEEM/GOLOS в формате json-rpc2.0
Одиночные команды перемещены в Single namespace
Все статические команды теперь имеют GrapheneNodeClient\Commands\Single namespace начиная с v4.0.0 .
Вы должны исправить немспейсы команда как показано ниже
//было
namespace GrapheneNodeClient\Commands\Broadcast
$coomand = new BroadcastTransactionCommand($connector);
//стало
namespace GrapheneNodeClient\Commands\Single
$coomand = new BroadcastTransactionCommand($connector);
Новый класс агрегатор команд Commads
До v4.0.0 вы могли использовать только одиночные команды. Теперь у Вас есть выбор и вы можете использовать только один класс для всех комманд, пример ниже
<?php
use GrapheneNodeClient\Commands\CommandQueryData;
use GrapheneNodeClient\Commands\Commands;
use GrapheneNodeClient\Commands\Single\GetDiscussionsByCreatedCommand;
use GrapheneNodeClient\Connectors\WebSocket\GolosWSConnector;
//Установка параметров запроса
$commandQuery = new CommandQueryData();
$data = [
[
'limit' => $limit,
'select_tags' => ['golos'], // for GOLOS
'tag' => 'steemit', // for STEEMIT
]
];
$commandQuery->setParams($data);
//или
$commandQuery = new CommandQueryData();
$commandQuery->setParamByKey('0:limit', $limit);
$commandQuery->setParamByKey('0:select_tags', [$tag]);
$commandQuery->setParamByKey('0:tag', $tag);
//использование одиночной команды
$command = new GetDiscussionsByCreatedCommand(new GolosWSConnector());
$golosPosts = $command->execute(
$commandQuery
);
//или класса-агрегатора команд
$commands = new Commands(new GolosWSConnector());
$golosPosts = $commands->get_discussions_by_created()
->execute(
$commandQuery
);
Исправлен критических баг в сериализаторе строк
Если вы использовали permlink, тело поста body или другие строки с длинной более 128 символов это приводило к ошибке "3030000 tx_missing_posting_auth: missing required posting authority". Этот баг исправлен.
Исправлен критический баг коннекторов
До v4.0.1 отправка повторного запроса к ноде при получении неправильного ответа не работало правильно, это было исправлено и теперь вы можете смело использовать несколько нод в коннекторе которые будут корректно переключаться или к ним будут отправляться повторные запросы.
<?php
namespace My\App\Commands;
use GrapheneNodeClient\Commands\Single\CommandAbstract;
use GrapheneNodeClient\Connectors\ConnectorInterface;
class SteemWSConnector extends WSConnectorAbstract
{
/**
* @var string
*/
protected $platform = self::PLATFORM_STEEMIT;
/**
* waiting answer from Node during $wsTimeoutSeconds seconds
*
* @var int
*/
protected $wsTimeoutSeconds = 5;
/**
* максимальное число попыток получить ответ от ноды
*
* @var int
*/
protected $maxNumberOfTriesToCallApi = 3;
/**
* wss или ws адреса. Первая нода по умолчанию, отсальные резервные.
* После $maxNumberOfTriesToCallApi попыток получить ответ от дефолтной ноды, коннектор переключится на резервную.
*
* @var string|array
*/
protected $nodeURL = ['wss://steemd.minnowsupportproject.org', 'wss://rpc.buildteam.io'];
}
Обновлена версия php в composer.json
Минимальна версия php для стабильной работы php-graphene-node-client была поднята до 7.0
Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13, активный помочник @semasping
С каждым коммитом мир становится лучше!