Confusing info on block types
Closed this issue · 2 comments
I'm completely new to Nano and am starting to read the living whitepaper from top to bottom. In ledger.md it is said that "There are four different transaction types in Nano (send, receive, change representative and epoch) [...]", but just a few lines below there is an example block with "type": "state"
.
I'm surely misunderstanding something here, but at a first glance this seems contradictory. Could this be cleared up to avoid confusion? Is the word "type" used for different things here?
That is definitely a potentially confusing area. There is a subtle difference between language used in Nano for blocks and transactions which I attempted to cover by adding definitions for block, transaction and transfer on that page. Block is referring to the actual block object which currently only has a "type" of "state" (there used to be old legacy block types which had a different object structure for different transactions, and thus would have a "type" like send, receive etc., but now "state" blocks have same block structure but represent different transactions based on the data in them).
So when "transaction" type is mentioned, it really means the action being taken based on the contents of the block. This is often referred to as the "sub-type" in some places so perhaps that would be worth clarifying in there. We are open to ideas about how to improve the clarity on this.
Thanks for the clarification! I'll try to think of a way to clarify this in the documentation and will create a pull request, if I come up with something.
I'm not sure whether this issue should stay opened or not, so feel free to close it.