Directories
¶
Path | Synopsis |
---|---|
types and functions for converting Bitmark accounts (the public key) and their signatures
|
types and functions for converting Bitmark accounts (the public key) and their signatures |
network announcements
|
network announcements |
Cache for assets temporary store assets just received until they are: a.
|
Cache for assets temporary store assets just received until they are: a. |
an AVL balanced tree with the addition of parent pointers to allow iteration through the nodes Note: an individual tree is not thread safe, so either access only in a single go routine or use mutex/rwmutex to restrict access.
|
an AVL balanced tree with the addition of parent pointers to allow iteration through the nodes Note: an individual tree is not thread safe, so either access only in a single go routine or use mutex/rwmutex to restrict access. |
Simple skeleton for background processes
|
Simple skeleton for background processes |
current block data
|
current block data |
implementation block header hashing using a memory intensive argon2-d algorithm
|
implementation block header hashing using a memory intensive argon2-d algorithm |
the structure of the block header includes functions to pack/unpack []byte form
|
the structure of the block header includes functions to pack/unpack []byte form |
uses crc64 of recent blocks to produce a deterministic number for the issue hashing verification system
|
uses crc64 of recent blocks to produce a deterministic number for the issue hashing verification system |
Package cache maintains the memory data store ***** Data Structure ***** Pool Key Value ExpiresAfter |___ PendingTransfer merkle.Digest (link) merkle.Digest (txid) 72h |___ UnverifiedTxIndex merkle.Digest (txid) pay.PayId 72h |___ UnverifiedTxEntries pay.PayId reservoir.unverifiedItem 72h |___ VerifiedTx merkle.Digest (txid) reservoir.verifiedItem never |___ OrphanPayment pay.PayId reservoir.orphanPayment 72h link ---------> txid -------------> payid ---------> unverifiedItem |________________|___________________|_____________________| PendingTransfer UnverifiedTxIndex UnverifiedTxEntries ***** Purpose ***** PendingTransfer: indexed by link so that duplicate transfers can be detected data is the tx id so that the same transfer repeated can be distinguished from an invalid duplicate transfer UnverifiedTxIndex & UnverifiedTxEntries: unverified transaction (issue and transfer) VerifiedTx: verified transaction (issue and transfer) OrphanPayment: when possible payment is already found, but no transfer transaction is received yet put the payment in the pool to wait for
|
Package cache maintains the memory data store ***** Data Structure ***** Pool Key Value ExpiresAfter |___ PendingTransfer merkle.Digest (link) merkle.Digest (txid) 72h |___ UnverifiedTxIndex merkle.Digest (txid) pay.PayId 72h |___ UnverifiedTxEntries pay.PayId reservoir.unverifiedItem 72h |___ VerifiedTx merkle.Digest (txid) reservoir.verifiedItem never |___ OrphanPayment pay.PayId reservoir.orphanPayment 72h link ---------> txid -------------> payid ---------> unverifiedItem |________________|___________________|_____________________| PendingTransfer UnverifiedTxIndex UnverifiedTxEntries ***** Purpose ***** PendingTransfer: indexed by link so that duplicate transfers can be detected data is the tx id so that the same transfer repeated can be distinguished from an invalid duplicate transfer UnverifiedTxIndex & UnverifiedTxEntries: unverified transaction (issue and transfer) VerifiedTx: verified transaction (issue and transfer) OrphanPayment: when possible payment is already found, but no transfer transaction is received yet put the payment in the pool to wait for |
simple module to list the supported chains
|
simple module to list the supported chains |
command
|
|
bitmark-cli
to issue basic commands to a bitmarkd
|
to issue basic commands to a bitmarkd |
bitmark-cli/rpccalls
Bitmark rpccalls
|
Bitmark rpccalls |
bitmark-dumpdb
Bitmark bitmark-dumpdb
|
Bitmark bitmark-dumpdb |
bitmark-info
Bitmark bitmark-info
|
Bitmark bitmark-info |
bitmarkd
bitmarkd main program
|
bitmarkd main program |
recorderd
Proof-of-work program for bitmark system This program subscribes to potential blocks stream on a bitmarkd and determines an argon2 hash value that meets the current network difficulty value.
|
Proof-of-work program for bitmark system This program subscribes to potential blocks stream on a bitmarkd and determines an argon2 hash value that meets the current network difficulty value. |
parse a ucl configuration file The configuration supports variable expansion: ${VAR} variable provided bu optional map ${ENV_VAR} all environment variables are prefix with ENV_ However, if the VAR is undefined then the text is not expanded and remains as "${VAR}" which is normally not wanted.
|
parse a ucl configuration file The configuration supports variable expansion: ${VAR} variable provided bu optional map ${ENV_VAR} all environment variables are prefix with ENV_ However, if the VAR is undefined then the text is not expanded and remains as "${VAR}" which is normally not wanted. |
constants that could be tuned
|
constants that could be tuned |
thread safe counter
|
thread safe counter |
types and functions for converting currencies to/from enumeration values
|
types and functions for converting currencies to/from enumeration values |
bitcoin
to validate bitcoin addresses
|
to validate bitcoin addresses |
litecoin
to validate litecoin addresses
|
to validate litecoin addresses |
satoshi
to convert satoshi values to integers
|
to convert satoshi values to integers |
Implement the Bitcoin difficulty value and its various encodings
|
Implement the Bitcoin difficulty value and its various encodings |
error instances Provides a single instance of errors to allow easy comparison without having to resort to partial string matches
|
error instances Provides a single instance of errors to allow easy comparison without having to resort to partial string matches |
live and test genesis blocks
|
live and test genesis blocks |
Bitmark keypair
|
Bitmark keypair |
merkle tree manipulation routines
|
merkle tree manipulation routines |
a queue system to transfer transactions
|
a queue system to transfer transactions |
simple module to record the global running mode
|
simple module to record the global running mode |
this handles low-level access to the ownership data in storage pool
|
this handles low-level access to the ownership data in storage pool |
miscellaneous type for payment
|
miscellaneous type for payment |
control of payment verification
|
control of payment verification |
this module handles the peer to peer network server-side: * upstream sending of block, transactions * listener for RPC requests e.g.
|
this module handles the peer to peer network server-side: * upstream sending of block, transactions * listener for RPC requests e.g. |
upstream
maintain REQ/REP connection to clients this allow for push of blocks, transactions...
|
maintain REQ/REP connection to clients this allow for push of blocks, transactions... |
prepare blocks for prooferd
|
prepare blocks for prooferd |
this module handles publishing of events for add-on services e.g.
|
this module handles publishing of events for add-on services e.g. |
Cache for transactions that have been verified
|
Cache for transactions that have been verified |
this is to setup and handle all of the incoming JSON RPC requests from clients requiring bitmarkd services standard golang RPC services can be used on the client side to access these services
|
this is to setup and handle all of the incoming JSON RPC requests from clients requiring bitmarkd services standard golang RPC services can be used on the client side to access these services |
maintain the on-disk data store maintain separate pools of a number of elements in key->value form This maintains a LevelDB database split into a series of tables.
|
maintain the on-disk data store maintain separate pools of a number of elements in key->value form This maintains a LevelDB database split into a series of tables. |
the structure of the transaction records includes functions to pack/unpack []byte form
|
the structure of the transaction records includes functions to pack/unpack []byte form |
miscellaneous small routines
|
miscellaneous small routines |
various comm ZMq routines shared be all commands
|
various comm ZMq routines shared be all commands |
Click to show internal directories.
Click to hide internal directories.