qdp

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2019 License: GPL-3.0

README

godoc Build Status Go Report Card GitHub MicroBadger Size

QDP (aka Plutos)

Plutos is an financial processing 💵 It's designed to replace existing bank systems, make it cheap, reliable and fast ⚡

  • Transfers between any accounts with no restrictions. Scalable.
  • Transactions are the main part, not balances. Cashflow and relationships are at the first.
  • Fast and efficient. No actions without intention.
  • Easy to configure and maintain. No caches, no thresholds, no config files (except systemd).
  • Easy to use. HTTP API with several endpoints

Where to start

The best place to start is documentation

Repositories

It's the main repository with plutos code itself and commands.

There are also two RPC libraries with protobuf service generators: tcprpc and graceful

And there is Jepsen test.

Database

Database is important part of the system. It stores transactions durably, so nothing lost if plutos restarts or fails. Plutos could work without a database, but nothing would be stored persistently and some part of data would be lost if one of plutoses is stopped or crashed.

The special database was developed along with plutos system to acheive maximum performance and reliability. Althrough it's not the subject to be published, general approach is described in AsgardDB: Fast and Scalable Financial Database

Simple mysql wrapper is provided to start with ./cmd/sqldb/.

Authors

Directories

Path Synopsis
archiver takes transactions and settings, collects them to blocks, calculates hash of blocks, creates archives, pushes hash to some blockchain(s), uploads archives to external storage you can easily verify block hash by command: tar xf archive.tar -O --wildcards "*/settings" "*/txns" | sha256sum you can even get hasher command like this: `tar xf archive.tar -O --wildcards "*/metadata.json" | jq -r .HashType`sum and by the same way you can extract block hash: tar xf archiver.tar -O --wildcards "*/metadata.json" | jq -r .Hash DB buckets Txns : <block_hash>/<type>/<txn_id> -> <txn json> Index : <type>/<txn_id> -> <block_hash> Blocks : <block_hash> -> <block>
archiver takes transactions and settings, collects them to blocks, calculates hash of blocks, creates archives, pushes hash to some blockchain(s), uploads archives to external storage you can easily verify block hash by command: tar xf archive.tar -O --wildcards "*/settings" "*/txns" | sha256sum you can even get hasher command like this: `tar xf archive.tar -O --wildcards "*/metadata.json" | jq -r .HashType`sum and by the same way you can extract block hash: tar xf archiver.tar -O --wildcards "*/metadata.json" | jq -r .Hash DB buckets Txns : <block_hash>/<type>/<txn_id> -> <txn json> Index : <type>/<txn_id> -> <block_hash> Blocks : <block_hash> -> <block>
Package bigchain is an reliable storage interface implementation for plutos to use
Package bigchain is an reliable storage interface implementation for plutos to use
Package chain is an local accounts chains cache.
Package chain is an local accounts chains cache.
cmd
Package gate is an plutos node entry point for user requests
Package gate is an plutos node entry point for user requests
proto
apipb
Package apipb is a generated protocol buffer package.
Package apipb is a generated protocol buffer package.
archiverpb
Package archiverpb is a generated protocol buffer package.
Package archiverpb is a generated protocol buffer package.
chainpb
Package chainpb is a generated protocol buffer package.
Package chainpb is a generated protocol buffer package.
gatepb
Package gatepb is a generated protocol buffer package.
Package gatepb is a generated protocol buffer package.
metadbpb
Package metadbpb is a generated protocol buffer package.
Package metadbpb is a generated protocol buffer package.
plutodbpb
Package plutodbpb is a generated protocol buffer package.
Package plutodbpb is a generated protocol buffer package.
pusherpb
Package pusherpb is a generated protocol buffer package.
Package pusherpb is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL