w12-platform / accounting-using-blockchain

w12 accounting using blockchain project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

accounting-using-blockchain

Формат БД

CREATE DATABASE accounting;

CREATE TABLE accounting.records(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
record_key INT UNSIGNED NOT NULL,
user_id MEDIUMINT UNSIGNED NOT NULL,
data VARCHAR(255) NOT NULL,
write_state TINYINT UNSIGNED ZEROFILL NOT NULL,
blockchain TINYINT UNSIGNED ZEROFILL NOT NULL, trx_id VARCHAR(255) NOT NULL, bc_key VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
);

API

Сервер шлет ответы в формате JSON. При возникновении ошибки сервер отвечает объектом {"error": "текст ошибки"}

post запросы:

setRecord

Записывает в таблицу очереди в БД новую запись

#####параметры

key - ключ записи
user_id - id пользователя
data - данные
nonce - целое число которое увеличиваеться при каждом запросе - можно например взять timestamp в милисекундах
hash - SHA3 от пароля и nonce

get запросы:

getUserRecords

Возвращает несколько записей пользователя по порядку возрастания ключей.

параметры:

user_id - id пользователя, положительное целое чило 24 бита
start_key - ключ от которого будет осуществляться выдача, положительное целое число 32 бита
limit - максимальное количество возвращаемых данные, минимум 1, максимум 10000, по умолчанию 10

поля ответа:

more - флаг указывающий что переданы не все данные и следует запросить следующую страницу
rows - массив строк данных - одна строка - запись по ключу
key - ключ данных
data - данные
history - количество записей по ключу - более одного - были исправления bc_key - ключ данных в блокчейне

пример ответа:

{"more":false,"rows":[{"key":"15","data":"asdasdasd15","history":1,"bc_key":"1099511631616"},{"key":"17","data":"asdasdasd17","history":1,"bc_key":"1099511632128"}]}

getRecord

Возвращает одну запись пользователя.

параметры:

user_id - id пользователя, положительное целое чило 24 бита
key - ключ, положительное целое число 32 бита

поля ответа:

key - ключ данных
data - данные
history - количество записей по ключу - более одного - были исправления bc_key - ключ данных в блокчейне

пример ответа:

{"key":1,"data":"asdasdasd12","history":1,"bc_key":"1099511628032"}

getRecordHistory

Возвращает историю изменений записи.

параметры:

user_id - id пользователя, положительное целое чило 24 бита
key - ключ, положительное целое число 32 бита

поля ответа:

rows - массив строк данных - одна строка - одна запись истории которая содержит данные и ключ данных в блокчейне

пример ответа:

{"rows":[{"data":"asdasdasd5","bc_key":"1099511629056"}]}

getRecordsBatch

Возвращает несколько записей по массиву ключей. Если по одному из ключей нет данных возвращает ошибку no data.

параметры:

user_id - id пользователя, положительное целое чило 32 бита
keys - строка ключей разделенная запятыми, максимальная длинна 128

поля ответа:

rows - массив строк данных - одна строка - запись по ключу key - ключ данных
data - данные
history - количество записей по ключу - более одного - были исправления
bc_key - ключ данных в блокчейне

пример ответа:

{"rows":[{"key":5,"data":"asdasdasd5","history":1,"bc_key":"1099511629056"},{"key":7,"data":"asdasdasd7","history":1,"bc_key":"1099511629568"}]}

getRecordQueue

Возвращает историю изменений записи из таблицы очереди - только для записанных в блокчейн записей с указанием хешей транзакций.

параметры:

user_id - id пользователя, положительное целое чило 24 бита
key - ключ, положительное целое число 32 бита

поля ответа:

rows - массив строк данных - одна строка - одна запись истории record_key - ключ данных user_id - идинтификатор пользователя
data - данные write_state - состояние записи в блокчейн 0 - ожидает записи 1 - записано blockchain - тип блокчейна 0 - EOS trx_id - хеш транзакции bc_key - ключ данных в блокчейне

пример ответа:

{"rows":[{"id":1,"record_key":17,"user_id":1,"data":"asdasdasd17","write_state":1,"blockchain":0,"trx_id":"5a8555156bce563ff5d9f839c758d89e42f20702a6a7951c2cee26de47af603a","bc_key":"1099511632128"}]}

About

w12 accounting using blockchain project


Languages

Language:CoffeeScript 70.1%Language:JavaScript 10.7%Language:Dockerfile 6.7%Language:HTML 5.2%Language:CSS 3.2%Language:C++ 2.4%Language:PHP 1.8%