Пакет производит распаковку блоков, сохраняя действия и дельты таблиц и выдавая их по API. Состоит из двух модулей: парсера и API. Парсер считывает данные из блокчейна и помещает их в базу. API получает данные по запросу и возвращает их с пагинацией.
pnpm install
NODE_ENV=development
- Определяет среду выполнения приложения.
API=http://127.0.0.1:8888
- Определяет URL-адрес API, к которому будет осуществляться доступ.
SHIP=ws://127.0.0.1:8080
- Определяет URL-адрес WebSocket-соединения, используемого для связи с другими узлами.
MONGO_EXPLORER_URI=mongodb://127.0.0.1:27017/cooperative
- Определяет URI-адрес MongoDB, используемый для подключения к базе данных.
START_BLOCK=1
- Определяет номер блока, с которого начинается парсинг блокчейна.
FINISH_BLOCK=0xFFFFFFFF
- Определяет номер блока, на котором заканчивается парсинг блокчейна. В данном случае, установлено значение "0xFFFFFFFF", что означает, что парсинг будет продолжаться до последнего доступного блока.
PORT=4000
- Определяет порт, на котором будет запущен сервер приложения.
ACTIVATE_PARSER=0
- Определяет флаг активации парсера. Если значение равно "1", парсер будет активирован.
В конфиге src/config.ts находится массив таблиц и действий, на которые парсер осуществит подписку.
export const subsribedTables = [
{ code: 'registrator', table: 'users', 'scope': 'registrator' },
{ code: 'soviet', table: 'participants' },
]
- подписка будет осуществлена на изменения таблиц указанных контрактов. Параметр scope - не обязательный. Без его указания любые scope будут попадать в базу данных.
export const subsribedActions = [
{ code: 'soviet', action: 'votefor' },
{ code: 'soviet', action: 'voteagainst' },
]
- подписка будет осуществлена на действия указанных контрактов.
Парсер может быть расширен любыми кастомными действиями, которые будут выполняться перед добавлением записи в базу данных. Для этого, для таблиц и действий соответственно, в папках src/ActionParser/Actions и src/DeltaParser/Deltas необходимо создать файлы с методами обработки и добавить их к src/ActionParser/Actions или src/DeltaParser/DeltaFactory.
pnpm start
Конечная точка предоставляет информацию о изменении (дельтах) таблиц между блоками.
let params = {
page: 1,
limit: 10,
filter: { } - любые параметры фильтрации таблицы, включая данные в полях
};
axios.get('http://localhost:4000/get-tables', { params })
.then(response => {
console.log(response.data);
// {
// results: array,
// page: number,
// limit: number
// };
})
Конечная точка предоставляет информацию о действиях, произошедших между блоками.
let params = {
page: 1,
limit: 10,
filter: { } // любые параметры фильтрации действий, включая данные в полях
};
axios.get('http://localhost:4000/get-actions', { params })
.then(response => {
console.log(response.data);
// {
// results: array,
// page: number,
// limit: number
// };
})
.catch(error => {
console.error(error);
});
Конечная точка предоставляет информацию о текущем блоке. Эта информация используется при формировании кооперативных документов.
axios.get('http://localhost:4000/get-current-block')
.then(response => {
console.log(response.data);
// number
})
.catch(error => {
console.error(error);
});
MIT License © 2024-PRESENT CBS VOSKHOD