A few changes to the specification
olalonde opened this issue · comments
@zw and myself (mostly zw) have worked on updating the specification to address some potential issues and make the serialization format more formal in order to facilitate interoperability of implementations.
The current README file is up to date and the diff of what has changed can be seen here: https://github.com/olalonde/proof-of-liabilities/pull/18/files
Notable changes:
value
becomessum
- SHA256 hashes are now hex-encoded instead of base64-encoded
nonce
s now have explicit advice on length and specified hex encoding- numbers are serialized as JSON strings
- convention on producing accounts trees deterministically, to ensure predictable root hashes and facilitate implementations testing
You can test your implementation against mine, but it is possible I got something wrong in my own implementation so if your output doesn't match, create an issue instead of banging your head on the keyboard.
Paging @intelliot --- we'd welcome your involvement too!
In section https://github.com/olalonde/proof-of-liabilities#root-node-1:
use the code that Bloomberg uses (e.g. XBT for Bitcoin)
I suggest using BTC
as it's used everywhere and everyone knows what it stands for. We can draw up a list of code for cryptocurrencies as appendix.
We can draw up a list of code for cryptocurrencies as appendix.
Yes that would not be a bad idea. I agree that BTC is probably more widely used and recognized than BTC.
With regards to the code list, I am working on a later release of X-ISO4217-A3 which would be better published on Github rather than through the IETF who are too slow with Internet Standards Drafts (sometimes they don't submit properlty, etc.). More info here: http://www.ifex-project.org/our-proposals/x-iso4217-a3 ... (Essentially, a registry prefix character is adopted to programatically clarify the namespace, ie. Euro is encoded as ZEUR
as it is ISO issued, Bitcoin is XBTC
as it is is not ISO issued.)