Alex Ant f872f9a54a update
2024-07-10 09:21:15 +05:00
2023-09-23 18:11:02 +08:00
2023-10-08 22:09:03 +08:00
2024-06-30 18:12:32 +05:00
2024-06-01 10:52:42 +05:00
2024-07-10 09:21:15 +05:00
2024-04-11 11:56:55 +03:00
2024-01-09 03:04:07 +01:00
2021-12-18 19:33:57 +08:00
2022-05-26 16:18:16 +08:00
2024-06-30 17:23:37 +05:00
2024-06-19 18:16:24 +05:00
2024-04-11 11:56:55 +03:00
2024-05-27 17:43:47 +05:00
2022-04-07 10:49:41 +08:00
2023-12-26 02:20:35 +01:00
2024-07-04 18:54:47 +05:00
2024-06-01 10:52:42 +05:00
2024-06-01 10:52:42 +05:00
2024-04-11 11:56:55 +03:00

COOPARSER

npm version npm downloads bundle JSDocs License

Пакет производит распаковку блоков, сохраняя действия и дельты таблиц и выдавая их по API. Состоит из двух модулей: парсера и API. Парсер считывает данные из блокчейна и помещает их в базу. API получает данные по запросу и возвращает их с пагинацией.

Установка

pnpm install

Конфигурационный файл .env

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

API

Получение таблиц

Конечная точка предоставляет информацию о изменении (дельтах) таблиц между блоками.


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

S
Description
No description provided
Readme MIT 1.3 MiB
v1.0.1 Latest
2024-06-01 05:56:12 +00:00
Languages
TypeScript 94.8%
Dockerfile 2.9%
JavaScript 2.3%