Update the README

With: Arthur B <arthur.breitman@gmail.com>
This commit is contained in:
Benjamin Canou 2018-02-20 09:58:51 +01:00 committed by Benjamin Canou
parent ac0a685769
commit 71556b9418
10 changed files with 312 additions and 251 deletions

View File

@ -1,230 +0,0 @@
Alphanet changelog
==================
For the next reset
------------------
[Alpha]
- Do not allow revealing the same endorsement twice.
- Tez values now have 6 decimals instead of two. The syntax used by
the client and Michelson use comma separators every three
digits, before and after the dot. For instance, 3 million tez and 10
µtez is written `3,000,000.000,01`. The syntax in JSON is the raw
amount in µtez, either as a number without decimals or as a decimal
string, for the same example we would get `"3000000000010"`.
[Node]
- Rewrite of the RPC library to handle content types, to enable binary
RPCs and proper HTTP verbs. The next version will probably break the
HTTP API.
- Now that we don't use the git backend anymore, we finally updated
the context hashing function from SHA1 to Blake2B.
[Michelson]
- Set a maximum type size, as a simple solution to avoid some type
checker abuses where types can grow exponentially.
- Annotations are now correctly handled by macros.
[Build]
- Split the code base into separate OPAM packages.
Reset 2017-11-20
------------------
[Alphanet]
- Limit the number of faucet operations at 5 per block.
[Client]
- Autocomplete scripts for bash.
- Smart contracts are now non spendable by default.
- Add a debug command to list invalid blocks.
[Node]
- Prevent potential stack overflow in validation.
- Fix concurrency issue where operations were cleared from
memory before being used.
- Continue background work on the multipass validator:
cleanup and document data structures, better logging
of resource requests, enhance requests for the same piece
of data to multiple peers, split the code in smaller
simpler components.
- P2p: fix issue with data greater than 2^16 bytes
- Irmin: use an experimental LevelDB backend
[Build]
- Refactor the economic protocol amendment code. Protocols are
now compiled to functors, taking the type signature of their
runtime environment as parameter. This simplifies the
dependencies, and will allow third party developpers to
instanciate economic protocols in other contexts than the node.
- Switch from Makefiles to jbuilder, yay!
- Rename (hopefully) all occurences of "mining" into "baking".
[Michelson]
- Introduce Micheline, the (now independent) IR of Michelson.
The parser and printer should now be used on their own, outside
of the client or node.
- Implement a basic semantics of annotations.
The typechecker now propagates annotations on types througout the
code, and tagging instructions with an annotation allows the
programmer to reannotate the element produced by the instruction.
The emacs mode displays propagated annotations.
- Add a version of `ITER` that takes a static code block and expects
a colletion on the initial stack, and works like a `LOOP`, pushing
the element of the collection one at a time on the stack. This is
like `REDUCE` but using a static code block instead of a dynamic
lambda. In the same vein, `MAP` can take a code block.
- Add `LOOP_LEFT` that uses a different type for the accumulator and
the return value. Continues while the top of the stack is `Left 'a`
and stops on `Right 'b`.
- Change timestamps to be arbitrary precision relative integers.
- Add `SIZE` on lists.
Reset 2017-11-17
----------------
[Node]
- P2p: fix issue with data greater then 2^16 bytes
- Irmin: restore usage `git-repack`... (mistakenly removed)
Reset 2017-10-13
----------------
[Client]
- Fix missing nonce revelation at end of cycle.
- New command line analyzer and better help pages.
[Node]
- Various small fixes and error message enhancements.
[Alphanet]
- Use older leveldb-1.18 as upgrade to the newer version made the
node crash.
[Michelson]
- Split the `key` type into `key` and `key_hash` to
prevent an error raised when using an unrevealed key.
Reset 2017-09-21
----------------
[Node]
- fix a performance issue in roll storage
[Doc]
- improve scripts and documentations on how to run sandboxed node
or a local private network
[Client]
- add an option `-log-requests`. All RPC requests and responses to the
node are logged on `stderr`.
[Michelson]
- Split the `key` type into `key` and `key_hash` to
prevent an error raised when using an unrevealed key.
Reset 2017-08-10
----------------
This update includes changes in the on-disk state of the node and in
the format of blocks and operations. It thus requires a chain reset.
Main changes includes:
[Doc]
- The documentation previously available on the Slack channel is now
available at:
https://raw.githubusercontent.com/tezos/tezos/alphanet/README.md
- The `alphanet` branch of the github repository is now automaticaly
synchronized with `alphanet` docker image. And the latest version of
the `alphanet.sh` is available at:
https://raw.githubusercontent.com/tezos/tezos/alphanet/scripts/alphanet.sh
No need to update manually though, the script auto-update itself
when running:
./alphanet.sh restart
Or:
./alphanet.sh update_script
[Michelson]
- minor language enhancements, mostly resulting from the feedback of
Milo's daily challenge:
http://www.michelson-lang.com/
- the alphanet scripts now understands a container: prefix wherever a
file: prefix is accepted, temporarily copying the file into the
container, and the emacs-mode is aware of that
[Node]
- Operations now include a block hash in their header. Such an
operation could only be included in a successor of this block.
- The economics protocol now refuses blocks that includes an operation
forged more than 64 blocks in the past. As any constants set by the
economic protocol, it is amendable by a vote.
- Header of blocks now includes a hash of the "context" that result
from its validation. This is currently the SHA1 of the git commit,
but this will be changed in a near future for a safer cryptographic
hash.
- The node does not need anymore to maintain a full index of the
operation to operate. This greatly reduce the memory and disk usage.
- The node now builds against `irmin.1.3` where some of our code and
optimizations were upstreamed. We were previously stuck to
irmin.0.12.
[CI]
- This is not directly visible in the alphanet, but our CI
infrastrucre is now ready for open development.
More about that soon (or later).

31
README.md Normal file
View File

@ -0,0 +1,31 @@
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 attempts to come to consensus about how the
protocol and the nodes should adapt and upgrade.
- Developer documentation is available online at http://doc.tzalpha.net
- The page https://www.tezos.com/ contains more information about the
project, even though it is frozen in time due to external reasons
- All development now happens on Gitlab at https://gitlab.com/tezos/tezos
The Tezos Alpha (test) network has been live and open since February 2017.
- More information on joining the Alphanet at http://doc.tzalpha.net/introduction/alphanet.html
- Several community built block explorers are available:
- https://ostez.com
- https://tzscan.io
- https://tezos.id
- https://tezoschain.io
- A few community run websites collect useful Tezos links:
- https://tezos.help
- https://tezos.rocks
- There is a matrix channel *Tezos* that you can join via https://riot.im/app/#/room/#tezos:matrix.org
- There is a *#tezos* channel on *freenode* that is reserved for technical discussions
- There is also a community FAQ at https://github.com/tezoscommunity/faq
The source code of Tezos is currently under exclusive copyright of
Dynamic Ledger Solutions, and will be open sourced under the MIT
license when the main network lunches.

View File

@ -10,14 +10,11 @@ all: html linkcheck
linkcheck: linkcheck:
$(SPHINXBUILD) -b linkcheck "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXBUILD) -b linkcheck "$(SOURCEDIR)" "$(BUILDDIR)"
introduction/readme.rst: ../README.rst
sed 's/TEZOS/How to build and run/' $< > $@
.PHONY: help Makefile .PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new # Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
html: Makefile introduction/readme.rst html: Makefile
@$(SPHINXBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) @$(SPHINXBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS)
clean: clean:

View File

@ -2,10 +2,13 @@
Building documentation locally Building documentation locally
****************************** ******************************
The documenation is available online at `doc.tzalpha.net <http://doc.tzalpha.net/>`_,
always up to date with master on `Gitlab <https://gitlab.com/tezos/tezos>`_.
Building instructions Building instructions
--------------------- ---------------------
To build the documentaion, you can use the main Makefile target ``doc-html`` To build the documentation, you can use the main Makefile target ``doc-html``
.. code:: bash .. code:: bash

View File

@ -173,3 +173,7 @@ texinfo_documents = [
author, 'Tezos', 'One line description of project.', author, 'Tezos', 'One line description of project.',
'Miscellaneous'), 'Miscellaneous'),
] ]
# -- Ignore fragments in linkcheck
linkcheck_anchors = False

View File

@ -3,14 +3,48 @@
You can adapt this file completely to your liking, but it should at least You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive. contain the root `toctree` directive.
Welcome to Tezos's documentation!
================================= Welcome to the Tezos Developper Documentation!
==============================================
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 attempts to come to consensus about how the
protocol and the nodes should adapt and upgrade.
- Developer documentation is available online at http://doc.tzalpha.net
- The page https://www.tezos.com/ contains more information about the
project, even though it is frozen in time due to external reasons
- All development now happens on Gitlab at https://gitlab.com/tezos/tezos
The Tezos Alpha (test) network has been live and open since February 2017.
- More information on joining the Alphanet at :ref:`here <alphanet>`.
- Several community built block explorers are available:
- http://ostez.com
- http://tzscan.io
- https://tezos.id
- https://tezoschain.io
- A few community run websites collect useful Tezos links:
- http://www.tezos.help
- https://tezos.rocks
- There is a matrix channel *Tezos* that you can join `here <https://riot.im/app/#/room/#tezos:matrix.org>`_.
- There is a *#tezos* channel on *freenode* that is reserved for technical discussions
- There is also a community FAQ at https://github.com/tezoscommunity/faq
The source code of Tezos is currently under exclusive copyright of
Dynamic Ledger Solutions, and will be open sourced under the MIT
license when the main network lunches.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Introduction: :caption: Introduction:
introduction/readme introduction/howto
introduction/contributing introduction/contributing
.. toctree:: .. toctree::

View File

@ -1,3 +1,5 @@
.. _alphanet:
Participating in the Alphanet Participating in the Alphanet
============================= =============================

View File

@ -1 +0,0 @@
../../CHANGES.alphanet

View File

@ -1 +0,0 @@
../../CHANGES.alphanet

View File

@ -0,0 +1,230 @@
Alphanet changelog
==================
For the next reset
------------------
[Alpha]
- Do not allow revealing the same endorsement twice.
- Tez values now have 6 decimals instead of two. The syntax used by
the client and Michelson use comma separators every three
digits, before and after the dot. For instance, 3 million tez and 10
µtez is written `3,000,000.000,01`. The syntax in JSON is the raw
amount in µtez, either as a number without decimals or as a decimal
string, for the same example we would get `"3000000000010"`.
[Node]
- Rewrite of the RPC library to handle content types, to enable binary
RPCs and proper HTTP verbs. The next version will probably break the
HTTP API.
- Now that we don't use the git backend anymore, we finally updated
the context hashing function from SHA1 to Blake2B.
[Michelson]
- Set a maximum type size, as a simple solution to avoid some type
checker abuses where types can grow exponentially.
- Annotations are now correctly handled by macros.
[Build]
- Split the code base into separate OPAM packages.
Reset 2017-11-20
------------------
[Alphanet]
- Limit the number of faucet operations at 5 per block.
[Client]
- Autocomplete scripts for bash.
- Smart contracts are now non spendable by default.
- Add a debug command to list invalid blocks.
[Node]
- Prevent potential stack overflow in validation.
- Fix concurrency issue where operations were cleared from
memory before being used.
- Continue background work on the multipass validator:
cleanup and document data structures, better logging
of resource requests, enhance requests for the same piece
of data to multiple peers, split the code in smaller
simpler components.
- P2p: fix issue with data greater than 2^16 bytes
- Irmin: use an experimental LevelDB backend
[Build]
- Refactor the economic protocol amendment code. Protocols are
now compiled to functors, taking the type signature of their
runtime environment as parameter. This simplifies the
dependencies, and will allow third party developpers to
instanciate economic protocols in other contexts than the node.
- Switch from Makefiles to jbuilder, yay!
- Rename (hopefully) all occurences of "mining" into "baking".
[Michelson]
- Introduce Micheline, the (now independent) IR of Michelson.
The parser and printer should now be used on their own, outside
of the client or node.
- Implement a basic semantics of annotations.
The typechecker now propagates annotations on types througout the
code, and tagging instructions with an annotation allows the
programmer to reannotate the element produced by the instruction.
The emacs mode displays propagated annotations.
- Add a version of `ITER` that takes a static code block and expects
a colletion on the initial stack, and works like a `LOOP`, pushing
the element of the collection one at a time on the stack. This is
like `REDUCE` but using a static code block instead of a dynamic
lambda. In the same vein, `MAP` can take a code block.
- Add `LOOP_LEFT` that uses a different type for the accumulator and
the return value. Continues while the top of the stack is `Left 'a`
and stops on `Right 'b`.
- Change timestamps to be arbitrary precision relative integers.
- Add `SIZE` on lists.
Reset 2017-11-17
----------------
[Node]
- P2p: fix issue with data greater then 2^16 bytes
- Irmin: restore usage `git-repack`... (mistakenly removed)
Reset 2017-10-13
----------------
[Client]
- Fix missing nonce revelation at end of cycle.
- New command line analyzer and better help pages.
[Node]
- Various small fixes and error message enhancements.
[Alphanet]
- Use older leveldb-1.18 as upgrade to the newer version made the
node crash.
[Michelson]
- Split the `key` type into `key` and `key_hash` to
prevent an error raised when using an unrevealed key.
Reset 2017-09-21
----------------
[Node]
- fix a performance issue in roll storage
[Doc]
- improve scripts and documentations on how to run sandboxed node
or a local private network
[Client]
- add an option `-log-requests`. All RPC requests and responses to the
node are logged on `stderr`.
[Michelson]
- Split the `key` type into `key` and `key_hash` to
prevent an error raised when using an unrevealed key.
Reset 2017-08-10
----------------
This update includes changes in the on-disk state of the node and in
the format of blocks and operations. It thus requires a chain reset.
Main changes includes:
[Doc]
- The documentation previously available on the Slack channel is now
available at:
https://raw.githubusercontent.com/tezos/tezos/alphanet/README.md
- The `alphanet` branch of the github repository is now automaticaly
synchronized with `alphanet` docker image. And the latest version of
the `alphanet.sh` is available at:
https://raw.githubusercontent.com/tezos/tezos/alphanet/scripts/alphanet.sh
No need to update manually though, the script auto-update itself
when running:
./alphanet.sh restart
Or:
./alphanet.sh update_script
[Michelson]
- minor language enhancements, mostly resulting from the feedback of
Milo's daily challenge:
http://www.michelson-lang.com/
- the alphanet scripts now understands a container: prefix wherever a
file: prefix is accepted, temporarily copying the file into the
container, and the emacs-mode is aware of that
[Node]
- Operations now include a block hash in their header. Such an
operation could only be included in a successor of this block.
- The economics protocol now refuses blocks that includes an operation
forged more than 64 blocks in the past. As any constants set by the
economic protocol, it is amendable by a vote.
- Header of blocks now includes a hash of the "context" that result
from its validation. This is currently the SHA1 of the git commit,
but this will be changed in a near future for a safer cryptographic
hash.
- The node does not need anymore to maintain a full index of the
operation to operate. This greatly reduce the memory and disk usage.
- The node now builds against `irmin.1.3` where some of our code and
optimizations were upstreamed. We were previously stuck to
irmin.0.12.
[CI]
- This is not directly visible in the alphanet, but our CI
infrastrucre is now ready for open development.
More about that soon (or later).

View File

@ -1,12 +1,5 @@
TEZOS How to build and run
===== ====================
Tezos is a distributed consensus platform with meta-consensus
capability. Tezos not only comes to consensus about state, like BTC or
ETH. It also comes to consensus about how the protocol and the nodes
should adapt and upgrade.
See https://www.tezos.com/ for more information about the project.
Build instructions Build instructions
------------------ ------------------
@ -48,8 +41,7 @@ While building the dependencies, ``opam`` is able to handle correctly
the OCaml libraries but it is not always able to handle all external C the OCaml libraries but it is not always able to handle all external C
libraries we depend on. On most system, it is able to suggest a call to libraries we depend on. On most system, it is able to suggest a call to
the system package manager but it currently does not handle version the system package manager but it currently does not handle version
check. In particular, the ``libsodium-dev`` packages on Ubuntu is too check.
old for building Tezos, we rely on version ``1.0.11`` at least.
At last, compile the project: At last, compile the project: