-
Notifications
You must be signed in to change notification settings - Fork 11
Technical Details
Apertus forms a network of authenticated immutable data storage and social networking on top of existing blockchains. It supports any network which uses the the bitcoin core rpc protocol, and comes with configurations for the following networks:
- Bitcoin Testnet
- Litecoin
- Litecoin Testnet
- Dogecoin
- Mazacoin
- Anoncoin
- Devcoin
- Potcoin
- Florincoin
- Curecoi
- Namecoin
- Primecoin
- Primecoin Testnet
- Dash Testnet
I (xloem) glanced a little through the source code and started composing this page. Improvements are welcome.
Data is stored in a hierarchy of transactions, built bottom-up. The first layer is the archive data itself. This data is then indexed via ledger transactions, which are themselves indexed in ledgers, ending in a single root ledger transaction which represents the entire archive.
Data is split into chunks of size equivalent to the maximum address payload size of the coin in question. Transactions contain these sequential chunks as dummy recipients. If a recipient would be duplicated, or transaction size is exceeded, the transaction is sent and a new one is begun. Transactions which would be entirely duplicate are skipped. Data is terminated by a set of actual transactions sending tips to real recipients, representing in order:
- keywords (#)
- recipients (@)
- vault
- profile / folder
- signature
Ledger transactions are archive transactions which store a text file indexing archives. The data content consists of one transaction id per line, in text. The root ledger contains only one transaction.
in Main.cs: CreateLedgerFile() stores data, CreateAddressArrayFromTransactionID, AddressArrayToLedger, and ConvertAddressArrayToFile interpret it


