Post
Topic
Board Альтернативные криптовалюты
Re: PRIZM - ответы на все технические вопросы
by
Bogtor
on 10/03/2018, 17:23:29 UTC
Добрый день!

Подскажите:
1) Где можно посмотреть API по взаимодействию с блокчейном:
1.1) Узнать баланс, баланс парамайнинга и транзакции кошелька
1.2) Узнать баланс структуры кошелька и/или множитель от данного баланса
2) API для вывода денег с баланса кошелька на другой баланс

Хочу сделать сайт с сервисами по PRIZM

Я предположу, что у тебя на локалхосте запущена нода.
1. API:
Ты можешь просмотреть и протестировать API запросы по следующей ссылке:
> http://localhost:9576/test
- обрати внимание на такие вещи, как getBlockchainTransactions, getBlock, getAccount, getBalance и так далее.
- обрати внимание, что getBlockchainTransactions отдаёт максимум 100 транзакций в указанных пределах. То есть для получения всех транзакций какого-то аккаунта нужно сделать полистовую загрузку с оффсетом в 100.

1.1 Баланс
1.1.1 Баланс - см. пункт 1, getBalance
1.1.2 Баланс парамайнинга - нужно считать руками, готовое не выдает
1.1.3 Транзакции - см. пункт 1, getBlockchainTransactions
1.2 Баланс структуры и множитель
1.2.1 Баланс структуры нужно считать руками, используя getBlockchainTransactions для составления модели иерархии с последующим суммированием балансов
1.2.2 Множитель можно посчитать, зная баланс структуры, используя алгоритм из этого класса: https://github.com/prizmspace/PrizmCore/blob/master/src/main/java/prizm/ParaMetrics.java
2. Осуществление перевода
Эту тему на пальцах на форуме не объяснить. Путь к осознанию таков:
1) Качаешь Prizm API Servlet с гитхаба
2) Декомпилируешь
3) Смотришь, как оно работает
В упрощенной форме алгоритм таков:
1) Узнать публичный ключ получателя
2) Сказать ноде что собираешься сделать такую-то тразакцию (не передавая свою секретную фразу/приватный ключ) -> requestType=sendMoney
3) В ответе ноды будут "сырые" байты транзакции
4) С помощью твоего приватного ключа, публичного ключа получателя и магии эллиптических кривых подписываешь транзакцию.
5) Отдаёшь подписанную транзакцию на ноду -> requestType=broadcastTransaction

Для обращения к API ноды нужно использовать следующую конструкцию:
%PROTOCOL%://%HOST%:9576/prizm?requestType=%REQUEST_TYPE%&%PARAMETERS%
где:
%PROTOCOL% = http | https
%HOST% = любой хост с открытым API
%PARAMETERS% = необходимые для обратки запроса параметры (для каждого типа запроса - свои)

На примере локальной ноды:
http://localhost:9576/prizm?requestType=getAccount&account=PRIZM-XXXX-XXXX-XXXX-XXXXX