-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathP2-commentary.txt
44 lines (36 loc) · 2.09 KB
/
P2-commentary.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Protocol update commentary
Protocol Version: 2
Builds on Protocol Version: 1
This protocol update adds the ability for the sender of a GTU transfer
to add a memo to the transfer to convey additional information to the
recipient. This functionality corresponds to the typical reference
field in a conventional bank transfer. The memo is optional.
The memo is recorded on the chain as part of the transaction, and it
can never be retracted. In particular this means it is publicly
visible to anyone who is observing the chain. As a consequence it
should not contain sensitive information or information that can be
misused by copying.
The memo will be visible in all the clients, e.g., mobile wallets,
desktop wallet, concordium-client, both for the sender and the
recepient of the transfer.
The data in the memo can be arbitrary strings, integers, or more
complex values. The only limit is the size of the data. The data is
not checked by the chain, it is simply recorded there. In order for
the tools to understand the data and display it in a readable way to
the users it is conventional to use CBOR encoding. Concordium's tools
will use this, and expect it. If this convention is not adhered to
then user experience will be degraded.
The protocol update is fully backwards compatible. This means that all
existing valid transactions will retain their validity and semantics,
e.g., a transfer of 10GTU will still mean a transfer of 10GTU.
New transaction types have a cost in-line with existing transactions,
but accounting for the increased transaction size. For example, a
transfer of GTU with memo will cost as much as a transfer of GTU
without a memo plus a cost based on the size of the memo, which is a
linear function fo the size.
Because existing nodes do not support new transaction types node
runners will have to update their nodes before the protocol update
will take effect. The updated node that supports the update will be
released ahead of time to give node runners time to update. Clients
such as wallets and the concordium-client will be released
concurrently with the updated node as well.