Glossary

Where is the money?

  • wallet: A set of keypairs (with their associated address).

  • address: The hash of a public key preceded by an indentifier and a version bit. Tokens, rolls, bytecode and datastore are associated with an address. An address is associated with a thread for sharding purposes.

  • smart-contract address: A specific kind of address that was generated by bytecode execution, that is not associated with a keypair. Hence, it is immutable. Note: a deletion mechanism can be implemented in the associated bytecode.

  • final balance: Balance at latest final blocks.

  • candidate balance: Balance at latest blocks.

  • deferred credits: Coins to be reimbursed upon a given slot. Produced by a roll sell or a roll slash.

  • ledger vs balance: The ledger is the long-term memory of the blockchain. For every address it may contain a balance, bytecode and a datastore (key / value container).

  • staking address: An address that has at least one roll.

Graph stuff

  • compatibility graph: A graph of all compatible blocks (see https://arxiv.org/pdf/1803.09029.pdf at III. ARCHITECTURE, D. Consensus Rule, 1. Compatibility Graph). Theoretical construction. Never computed by the Massa node.

  • head incompatibility graph: A graph of incompatible active blocks (see https://arxiv.org/pdf/1803.09029.pdf). Computed by the Massa node. Simpler to compute than the compatibility graph, practical application of it.

  • fitness: For a block: 1 + number of endorsements included in the block. For a clique: sum of its blocks’ fitness.

  • final: A block becomes final if its fitness summed to the fitnesses of all the following blocks is above a defined threshold.

  • stale: A block is stale when it is only contained in cliques that have been abandoned.

  • blockclique: The clique of higher fitness.

Consensus and block production

  • proof of stake: A type of consensus mechanism <https://en.wikipedia.org/wiki/Proof_of_stake> in which power in the network is directly related to the amount of tokens one possesses.

  • thread: Addresses are sharded across threads.

  • period: On a thread, a block is produced every period.

  • cycle: Config-defined number of periods. Unit of time and associated information used by the proof of stake algorithm to make the upcomming selections for block and endorsement creation. Lasts for about 30 minutes.

  • slot: Point in time defined by a period and a thread, at which a block is expected to be created. Can be empty if the selected creator missed the block opportunity.

  • slashing: Process in which the rolls of an address are remove and set for future reimbursement at the end of a cycle. Happens when an address block production is too low compared to its block opportunities.

  • staker: Owner of at least one roll. They are expected to create blocks and endorsements when selected.

  • roll: Akin to a lottery ticket to be selected for block and endorsement creation. A roll costs 100 MAS. The more rolls you have, the more chances you have to be selected to produce a block.

  • endorsement: Part of a block header, used to improve security. Any staker can be selected to create an endorsement. They are produced automatically by any node with at least one staking address. An endorsement carries the hash of the last block in the given thread. A block creator must include enough of them in order for the block to have a good fitness and be included in the blockclique.

  • block: A block is produced by a staker. They are produced automatically by any node with at least a staking address. It includes operation and is checked by other stakers.

How to interact with the blockchain

  • operation: The only way to inject information in the blockchain. It is produced by an emitter that will provide a fee. The operation will be valid (ie includable in a block) only for a limited amount of time. Can be a simple transaction, a roll buy, a roll sell or a smart contract operation. The latter will execute bytecode on the blockchain.

  • transaction: Coin transfer between a sender (that created and signed this operation) and a receiver.

Miscellaneous

  • peer VS node: 1 peer <=> 1 ip address, whereas 1 node => 1 public key. A peer can run multiple nodes.

  • node address: Address used to identify a node. Not related to a staking address.