add transaction store
The idea is to provide a global and a per-user transaction log.
The global transaction log:
- it is shared for all users.
- it supports getting a transaction, but you must know the exact id.
- ids have the form
scope/key, where the scope is used for acl.
- it supports pre-reserving a unique key and adding a new entry.
The per-user transaction log:
- it supports getting all transactions in one scope and adding a new transaction.
- the payload is encrypted for the user.
Both transaction logs have a ttl, after which entries expire.
- obfuscate creation date (maybe?)