[ANN] Tezos 7.0 is now available on opam

Tezos executables and libraries have just been released on opam. You can thus build them from source with a simple opam install tezos and build your own projects upon them.

What is Tezos

Tezos is a distributed consensus platform with meta-consensus capability. Tezos not only comes to consensus about the state of its ledger, like Bitcoin or Ethereum. It also comes to consensus about how the protocol and the nodes should adapt and upgrade. For more information about the project, see https://tezos.com.

Our implementation of Tezos is written in OCaml. It is split into several libraries (command-line interface tezos-clic, peer-to-peer library tezos-p2p, cryptographic primitives tezos-crypto…) and executables (node tezos-node, client tezos-client…).

Useful Links

Source code for this particular implementation can be found at https://gitlab.com/tezos/tezos/. Developer documentation is available at https://tezos.gitlab.io/. In particular, documentation for this specific release (version 7.0) is available at http://tezos.gitlab.io/releases/version-7.html.

Installation Instructions

Tezos (internal compiler in order to self amend itself) requires a specific version of the compiler (OCaml 4.09.1):

opam switch 4.09.1

Tezos also requires some external libraries:

opam depext tezos

Finally, to install all binaries:

opam install tezos

Having never used tezos, is it possible to configure tezos to use anything other than tez’s - eg start a new blockchain and and use fiats as fuel?

You have several options to try out Tezos:

Thanks for mentioning the above. My question, though, was more about whether it’s easy to configure the tezos framework to use any other than a cryptocurrency. There seems to be a lot of excellent code in the tezos repo and there are many applications which could use a robust smart contract framework which don’t require cryptocurrencies - ie one could use fiat currencies, or anything else for that matter, to act as a fuel.

1 Like

Tezos has a soft-updating mechanism that works (roughly) as follows:

The network starts with a genesis block (that’s empty) and a genesis protocol (“protocol” here means “economic protocol”: the rules according to which a block is or isn’t valid, according to which smart contracts are initiated and acted upon, according to which transactions take place, etc.). This genesis protocol includes a public key.

The genesis protocol has no notion of coin, currency, smart-contract, etc. Instead, the genesis protocol knows a single operation: a protocol injection. As a result, the first block of a tezos-based blockchain is always the genesis block, and the second block is always a block with a single operation: a protocol injection.

The protocol injection for genesis requires the operation to be signed by the private key that matches the public key specified in the genesis protocol. And the protocol injection changes the genesis protocol to a new protocol. This new protocol specifies what constitutes a valid block to add to the chain on top of the block that performed the protocol injection.

In the Tezos blockchain, the protocol injected on top of genesis included notions of coins and smart contracts and a proof-of-stake system. It also included an in-protocol voting system to inject new protocols based on consensus amongst coin-holders. (The teos nodes are even capable of obtaining new protocol sources over the p2p network that supports the chain. This is so nodes can fetch the protocols, compile them, and dynlink them: you don’t need to update/restart your node to get the protocol updates.) However, this is protocol arbitrary: you can start a new chain and inject a different protocol on top genesis.

For example, you could re-implement Bitcoin (proof-of-work, coins, transfer, etc.) as a protocol that you inject on top of genesis. Your chain would have a genesis block, then a block that activates your own version of bitcoin, and then the blocks after that would be similar to what you would find on any bitcoin-like chain.

Of particular interest to you, the protocol you inject can have entirely different on-chain notions and operations (e.g., a TCG/CCG with no coins at all but a notion of ownership over cards and some way to transfer them). One of the thing you can change is the soft-updating mechanism: the newly injected protocol can use a genesis style of updates (a “dictatorship” where a single person controls the protocol) or it can even include no soft-updating mechanism at all (a “stale” protocol where you need to hard-fork if you want to make significant changes).

For this use case (of starting your own chain with a different protocol), you might be better off cloning the git repository, doing some minimal clean up, etc. This is because the tezos binaries include the sources for all protocols that have been used on the tezos main chain (just so you don’t need to get them over the network even if you can).

You might be interested in the following blog post about how to write your own protocol: https://blog.nomadic-labs.com/how-to-write-a-tezos-protocol.html


Excellent - that is exactly what I was after - thanks so much for taking the time to write it.