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

Новый функционал и фиксы [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

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

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