VisibleMoney Infrastructure specification

Diagram

Components

LabelFull nameTypeDescription
VMISVisibleMoney Infrastructural ServerserverInfrastructural server of VisibleMoney. Contains all components needed to provide all functionality to VisibleMoney clients – including banking, transparency actions, asset etc. Contains also components related to securing database via blockchain
VMDBVisibleMoney Databaserelational databaseOLTP database supporting both banking functionality, database of assets, evidence of persons, functionality supporting transparency actions in system (views on other people data) and other Dbs
VMBCDBVisibleMoney Blockchain Databaserelational databaseRelational database containing blockchain
VMASVisibleMoney Application Serverapplication serverApplication server operating over VMDB and transaction pool. VMAS is providing both functionality of view data in VMDB and changing it – through adding new transactions to pool
VMTPDBVisibleMoney Transaction pool Databaserelational databaseRelational database containing transactions in pool
VMTFVisibleMoney Transaction funnelprocessProcess of funnel between transaction pool and VMDB and VMBCDB. Process packages transactions from pool into blocks of blockchain and realizes operations in VMDB corresponding to transactions
VM Client 1,2VisibleMoney ClientactorClient – user of visible money system performing actions in system – banking, assets or transparency operations
BCBSVisibleMoney Blockchain Browser ServerserverServer, which stores whole Blockchain. Goal of this server, is immediately after creation of new block of blockchain to publish it. And by this action, transactions in last block are set to stone forever. VMIS doesn’t have right to rewrite this information, it can only add last block information on the top of blockchain
BCVCBlockchain Verification ClientactorBCBS is accessed by Blockchain verification clients(BCVC). Their goal is to verify, that blockchain hasn’t changed since last check(except for new blocks) and also, if they have crypto password of some client that did some transactions, they can decrypt content of that specific transaction and verify that transaction content corresponds to reality

Flows

DirectionFromToLabelDescription
BIVM Client 1VMASF1VM Client communicates with VMAS in order to serve request for VisibleMoney functionality issued by logged person. In From ->To direction flow requests for data retrieval or request that require set up of new transaction, which will be later processed in VMTF process. In To->From direction flow data pulled from VMDB and responses to transaction setup requests
BIVM Client 2VMASF2See F1
UNIVMASVMTPDBF3VMAS sends new transactions to transaction pool. Transactions must be correctly signed by corresponding private keys.This check is performed at VMAS
UNIVMTPDBVMTFF4Transactions from VMTPDB flow to VMTF process. Process transforms transaction into new blockchain block and also creates neccessary actions in VMDB, corresponding to transactions
UNIVMTFVMTPDBF5After processing each transaction, VMDB objects are updated. References to transactions in pool are set
UNIVMTFBCBSF6After block creation, new block is writtern and published to BCBS Server. All sensitive data of transactions are crypted. Only clients with proper cryptokeys can uncrypt the data of specific transaction
UNIVMTFVMBCDBF7After block creation, new block is writtern to blockchain database
UNIVMDBVMASF8Data required from VMDB by VMAS are sent through this flow
BIVMTFVMDBF9During transaction processing in VMTF process, neccessaary actions in VMDB are taken. Back by this flow fly references of new created/updated objects
UNIVMBCDBVMASF10Blockchain data fly through this flow, in order to satisfy requests from BCVC
UNIBCBSBCVCF12Blockchain browser server send parts of blockchain to BCVC. BCVC potentialy stored this information in his local storage, for later comparison
BIVMASBCVCF13BCVC requests actual blockchain from database and does all the checks, in order to control live blockchain or blockchain stored at BCBS