i-avatar777/yii2-service-blockchain-table

Таблица с валидацией данных

0.0.2 2020-04-26 18:59 UTC

This package is auto-updated.

Last update: 2024-11-27 05:43:46 UTC


README

Введение

Эта таблица предназначена для того чтобы сохранять данные в таблице целостность которых можно проверить. Записаить в строку можно только один раз. Вместе с сохранением расчитывается хеш от всей строки и записывается в поле _hash_row. Класс наследуется от класса \yii\db\ActiveRecord и реализует несколько функций:

  • calculateHash - расчитать хеш
  • isValid - расчитывает хеш при помощи calculateHash и сравнивает с полем _hash_row

Реализация

Нельзя второй раз переписывать данные, это задача решается помещением каждой строки как транзакции в таблицу транзакций. Транзакции упаковываются в блоки. Блок содержит 1000 записей. Блок содержит ссылку на предыдущий блок и хеш своего блока.

Block 
{
    'id' => 1,    
    'hash' => '123123',    
}
Transaction 
{
    'id' => 1,    
    'table_id' => 324,    
    'row_id'   => 324,    
    'hash'     => '123123',    
}

Как называется таблица Transaction ? допустим blockchain_transaction

Как называется таблица Block ? допустим blockchain_block

Как называется таблица Table ? допустим blockchain_table