VisibleMoney Transaction funnel (VMTF) process specification

Diagram

Components of diagram

LabelNameDescription
PSTPProcess of single transaction processingProcess iterates for each transaction in transaction pool. Validates each transaction and then sets up all necessary changes in VMDB database. That is sets up all banking objects – transfers, standing orders, direct debits etc.
PBFProcess of block finalizationAfter all transaction are processed, new block at the top of existing blockchain can be created. All transaction plain text bodies are crypted. Crypting keys are stored with transactions records. Hash of new block is calculated using crypted bodies of transactions. New block is written at top of blockchain. New block is added to the external server, for purpouse of later possible blockchain control

All other components of diagram are described here.

Data flows

DirectionFromToLabelDescription
UNIVMTPPSTPDF1Within this flow fly each transaction data. Process of PSTP required all transaction data in order to propagate all necessary changes from transaction written in transaction pool to VMDB.
UNIPSTPVMTPDF2After propagating changes from transaction, transaction data is updated with corresponding references to new created/updated objects in VMDB
BIPSTPVMDBDF3From PSTP to VMDB fly data on newly created/updated business objects. This data is stored in VMDB. Opposite direction fly Ids of new objects created in VMDB. These are used to update transaction records in VMTP by DF2 data flow
UNIPBFVMTPDF4During process of block finalization, new record of block is created at the top of blockchain. Transactions have to be updated with new block’s id
BIVMBCDBPBFDF5Through this flow fly data of new block. Opposite direction comes new block’s id
UNIPBFBCBSDF6After new block is created, transactions in encrypted form are written to external server. In order to set the blockchain data to stone. And provide possibility to external verifiers of blockchain to do their work

Process flows

LegendDescription
PF0Whole process starts after some period of time since last block was written is passed, or simply after transaction pool gets filled to certain level with new transactions
PF1Process iterates through each new transaction in pool
PF2Part of iteration mentioned in PF1
PF3After all transactions are validated and corresponding actions taken in VMDB, subprocess of block finalization is called
PF4After PF3, process ends