Skip to content

Commit

Permalink
Update main with changes from staging 9 Nov 2023 (#158)
Browse files Browse the repository at this point in the history
* typo

* Anchor for office hours (#157)

* Capitalization (#156)

* Capitalize "Mainnet"

* Capitalize Ghostnet

* Capitalize Smart Rollups

* Capitalize Dailynet

* Remove information about TzStats public API (#155)

* tzstats API is no longer public

* Hide the inspect contract topic for now

* Show date of last update (#154)

* Show the last update date and make that footer the base color

* Format dates like docusaurus wants them

* Don't bold the last updated date
  • Loading branch information
timothymcmackin authored Nov 9, 2023
1 parent 3462d09 commit 7a4be6e
Show file tree
Hide file tree
Showing 89 changed files with 254 additions and 158 deletions.
3 changes: 2 additions & 1 deletion docs/architecture/accounts.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Accounts
authors: "Tim McMackin"
lastUpdated: 18th October 2023
last_update:
date: 18 October 2023
---

Tezos uses two types of accounts:
Expand Down
7 changes: 4 additions & 3 deletions docs/architecture/governance.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Governance
lastUpdated: 3rd July 2023
last_update:
date: 3 July 2023
---

## What is Self Amendment?
Expand Down Expand Up @@ -33,13 +34,13 @@ The voting participation target tries to match the exponential moving average of

Previously, during the voting process, a test chain would be spun up during the “testing period” which took place between the exploration and promotion voting periods. The intent was that this test chain be used to verify that the new proposal worked correctly, but in practice, the test chain has never been used in this manner and has caused significant operational problems to node operators.

The Florence upgrade eliminates the test chain activation, the testing period has been retained but is now named the “cooldown period”. Instead, testing the protocol continues by using test chains that operate outside of the mainnet voting process.
The Florence upgrade eliminates the test chain activation, the testing period has been retained but is now named the “cooldown period”. Instead, testing the protocol continues by using test chains that operate outside of the Mainnet voting process.

#### 4. Promotion Vote Period

At the end of the Testing Period, the Promotion Vote Period begins. In this period, the network decides whether to adopt the amendment based on off-chain discussions and its behavior during the Testing Period. As in the Exploration Vote Period, bakers submit their votes using the ballot operation, with their votes weighted proportionally to the number of rolls in their staking balance.

At the end of the Promotion Vote Period, the network counts the number of votes. If the participation rate reaches the minimum quorum and an 80% supermajority of non-abstaining bakers votes “Yea,” then the proposal is activated as the new mainnet. Otherwise, the process once more reverts to the Proposal Period. The minimum vote participation rate is set based on past participation rates.
At the end of the Promotion Vote Period, the network counts the number of votes. If the participation rate reaches the minimum quorum and an 80% supermajority of non-abstaining bakers votes “Yea,” then the proposal is activated as the new Mainnet. Otherwise, the process once more reverts to the Proposal Period. The minimum vote participation rate is set based on past participation rates.

See [the full details of the governance process](https://medium.com/tezos/amending-tezos-b77949d97e1e).

Expand Down
5 changes: 3 additions & 2 deletions docs/architecture/governance/amendment-history.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: History of amendments
authors: 'Thomas Zoughebi, Aymeric Bethencourt, and Maxime Fernandez'
lastUpdated: 30th June 2023
last_update:
date: 30 June 2023
---

As presented in [Governance](../governance), the Tezos blockchain is constantly evolving, through new amendments. In this chapter, we will present an overview of past proposals and the reasons for their approval or disapproval.
Expand Down Expand Up @@ -189,7 +190,7 @@ For more information, see the blog post from [Nomadic Labs](https://research-dev

Mumbai's main changes are:

* Smart rollups: Tezos enshrined rollups are enabled and provide a powerful scaling solution allowing anyone to deploy decentralized WebAssembly applications with dedicated computational and networking resources.
* Smart Rollups: Tezos enshrined rollups are enabled and provide a powerful scaling solution allowing anyone to deploy decentralized WebAssembly applications with dedicated computational and networking resources.
* Minimal block time reduction from 30s to 15s.
* Ticket transfers between user accounts.

Expand Down
3 changes: 2 additions & 1 deletion docs/architecture/governance/improvement-process.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Tezos Improvement Process (TZIP)
lastUpdated: 10th July 2023
last_update:
date: 10 July 2023
---
As Tezos is a large decentralized project that is constantly evolving, its members need to have a mechanism for proposing improvements to the ecosystem.

Expand Down
3 changes: 2 additions & 1 deletion docs/architecture/protocol.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Tezos Protocol and Shell
lastUpdated: 29th June 2023
last_update:
date: 29 June 2023
---

The primary characteristic that makes Tezos unique is its self-amending property. The part that amends itself is called the economic protocol. The rest of the Tezos node is what we call the shell.
Expand Down
35 changes: 18 additions & 17 deletions docs/architecture/smart-rollups.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
---
title: Smart Optimistic Rollups
authors: 'Nomadic Labs, TriliTech'
lastUpdated: 30th June 2023
last_update:
date: 30 June 2023
---

Rollups play a crucial part in providing next-generation scaling on Tezos. This page gives a technical introduction to smart rollups, their optimistic nature, and an intro to developing your own WASM kernel.
Rollups play a crucial part in providing next-generation scaling on Tezos. This page gives a technical introduction to Smart Rollups, their optimistic nature, and an intro to developing your own WASM kernel.

## Prerequisites

This page covers an advanced topic at the bleeding edge of Tezos core development. If you are interested in more fundamental reading, a great place to start is [Tezos Protocol and Shell](./protocol) and [Smart Contracts](../smart-contracts/languages).

## Examples

For examples of smart rollups, see this repository: https://gitlab.com/tezos/kernel-gallery.
For examples of Smart Rollups, see this repository: https://gitlab.com/tezos/kernel-gallery.

## What is a rollup?

Expand All @@ -35,7 +36,7 @@ published an invalid claim. Therefore, thanks to the refutation
mechanism, a single honest participant is enough to guarantee that the
input messages are correctly interpreted.

In the Tezos protocol, the subsystem of smart rollups is generic with
In the Tezos protocol, the subsystem of Smart Rollups is generic with
respect to the syntax and the semantics of the input messages. More
precisely, the originator of a smart rollup provides a program (in one
of the languages supported by Tezos) responsible for interpreting input
Expand All @@ -60,13 +61,13 @@ terms of expressiveness.

The purpose of this documentation is to give:

- an overview of the terminology and basic principles of smart rollups
- a complete tour of smart rollups related workflows
- an overview of the terminology and basic principles of Smart Rollups
- a complete tour of Smart Rollups related workflows
- a reference documentation for the development of a WASM kernel.

# Overview

Just like smart contracts, smart rollups are decentralized software
Just like smart contracts, Smart Rollups are decentralized software
components. However, contrary to smart contracts that are processed by
the network validators automatically, a smart rollup requires a
dedicated *rollup node* to function.
Expand All @@ -86,7 +87,7 @@ the prefix `sr1`.

## Inputs

There are two channels of communication to interact with smart rollups:
There are two channels of communication to interact with Smart Rollups:

1. a global **rollups inbox** allows layer 1 to transmit
information to all the rollups. This unique inbox contains two kinds
Expand Down Expand Up @@ -186,7 +187,7 @@ A **commitment** claims that the interpretation of all inbox messages
published during a given commitment period and applied on the state of a
parent commitment leads to a given new state by performing a given number
of execution steps of the PVM. Execution steps are called **ticks** in
the smart rollups terminology. A commitment must be published on the
the Smart Rollups terminology. A commitment must be published on the
layer 1 after each commitment period to have the rollup progress. A
commitment is always based on a parent commitment (except for the
genesis commitment that is automatically published at origination time).
Expand Down Expand Up @@ -269,7 +270,7 @@ all concurrent stakers to avoid the rollup being stuck.

## Tools

Smart rollups come with two new executable programs: the Octez rollup
Smart Rollups come with two new executable programs: the Octez rollup
node and the Octez rollup client.

The Octez rollup node is used by a rollup operator to deploy a rollup.
Expand Down Expand Up @@ -528,7 +529,7 @@ EMESSAGE=$(octez-smart-rollup-client-Pt${CURRENT_PROTOCOL} encode outbox message
## Triggering Execution of an Outbox Message
Once an outbox message has been pushed to the outbox by the kernel at
some level `${L}`, the user needs to wait for the commitment that includes this level to be cemented. On dailynet, the cementation process
some level `${L}`, the user needs to wait for the commitment that includes this level to be cemented. On Dailynet, the cementation process
of a non-disputed commitment is 40 blocks long while on Mainnet, it is 2
weeks long.
Expand Down Expand Up @@ -701,9 +702,9 @@ general-purpose tool like [WABT](https://github.com/WebAssembly/wabt).
wat2wasm hello.wat -o hello.wasm
```
The contents of the resulting `hello.wasm` file is a valid WASM kernel. One of the benefits of choosing WASM as the programming language for smart rollups is that WASM has gradually become a ubiquitous compilation target over the years. Its popularity has grown to the point where mainstream, industrial languages like Go or Rust now natively compile to WASM. For example, `cargo`, the official Rust package manager, provides an official target to compile Rust to `.wasm` binary files, which are valid WASM kernels. This means that, for this particular example, one can build a WASM kernel while enjoying the strengths and convenience of the Rust language and the Rust ecosystem.
The contents of the resulting `hello.wasm` file is a valid WASM kernel. One of the benefits of choosing WASM as the programming language for Smart Rollups is that WASM has gradually become a ubiquitous compilation target over the years. Its popularity has grown to the point where mainstream, industrial languages like Go or Rust now natively compile to WASM. For example, `cargo`, the official Rust package manager, provides an official target to compile Rust to `.wasm` binary files, which are valid WASM kernels. This means that, for this particular example, one can build a WASM kernel while enjoying the strengths and convenience of the Rust language and the Rust ecosystem.
In the context of smart rollups, Rust has become the primary language where the WASM backend has been tested extensively. However, the WASM VM has not been modified in any way to favor this language. We fully expect that other mainstream languages, such as Go, are also great candidates for implementing WASM kernels.
In the context of Smart Rollups, Rust has become the primary language where the WASM backend has been tested extensively. However, the WASM VM has not been modified in any way to favor this language. We fully expect that other mainstream languages, such as Go, are also great candidates for implementing WASM kernels.
Let's move on and continue by:
Expand Down Expand Up @@ -747,7 +748,7 @@ kernel, but can be used by the PVM to give information to the kernel.
When a new block is published on Tezos, the inbox exposed to the smart
rollup is populated with all the inputs published on Tezos in this
block. Keep in mind that all smart rollups which are originated on Tezos share the same inbox. As a consequence, a WASM kernel has to filter the inputs that are relevant for its purpose from the ones it does not need to process.
block. Keep in mind that all Smart Rollups which are originated on Tezos share the same inbox. As a consequence, a WASM kernel has to filter the inputs that are relevant for its purpose from the ones it does not need to process.
Once the inbox has been populated with the inputs of the Tezos block,
the `kernel_run` function is called, from a clean `transient` state.
Expand Down Expand Up @@ -785,7 +786,7 @@ evolved arithmetic machine. It needs to be enriched with so-called
"host" functions to be used for greater purposes. The host
functions provide an API to the WASM program to interact externally.
For smart rollups, the host functions exposed to a WASM kernel allow
For Smart Rollups, the host functions exposed to a WASM kernel allow
it to interact with the components of persistent state:
- `read_input` - loads the oldest input still present in the inbox of the smart rollup in the transient memory of the WASM kernel. This means that the input is lost at the next invocation of `kernel_run` if it is not written in the durable storage
Expand Down Expand Up @@ -860,7 +861,7 @@ simple as running the following command.
rustup target add wasm32-unknown-unknown
```
Rust also proposes the `wasm64-unknown-unknown` compilation target. This target is **not** compatible with Tezos smart rollups, which only
Rust also proposes the `wasm64-unknown-unknown` compilation target. This target is **not** compatible with Tezos Smart Rollups, which only
provides a 32bit address space.
The simplest kernel one can implement in Rust (the one that returns directly after being called, without specification) is the following Rust file (by convention named `lib.rs` in Rust).
Expand Down Expand Up @@ -1288,7 +1289,7 @@ solutions:
protocol and is the unique source of truth regarding the semantics
of rollups. The PVM is able to produce proofs enforcing this truth.
This ability is used during the final step of refutation games.
- **Inbox**: A sequence of messages from layer 1 to smart rollups.
- **Inbox**: A sequence of messages from layer 1 to Smart Rollups.
The contents of the inbox is determined by the consensus of the
Tezos protocol.
- **Outbox**: A sequence of messages from a smart rollup to
Expand Down
5 changes: 3 additions & 2 deletions docs/architecture/tokens.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Tokens
authors: "Claude Barde, Aymeric Bethencourt, Tim McMackin"
lastUpdated: 1st November 2023
last_update:
date: 1 November 2023
---

In a blockchain ecosystem, a digital asset that can be transferred between accounts is called a _token_.
Expand Down Expand Up @@ -79,7 +80,7 @@ Therefore, if the smart contract is malicious or has flaws, the ledger could be
## Token standards

While you can create tokens that behave in any way that you want them to behave, it's best to create tokens that follow a standard.
Token standards in a blockchain ecosystem are important many reasons, including:
Token standards in a blockchain ecosystem are important for many reasons, including:

- They enforce best practices that improve the safety of the code that the tokens depend on
- They provide an interface that makes it easier for applications to work with them, such as a consistent way of transferring tokens from one account to another
Expand Down
3 changes: 2 additions & 1 deletion docs/architecture/tokens/FA1.2.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: FA1.2 tokens
authors: "Claude Barde, Aymeric Bethencourt, Tim McMackin"
lastUpdated: 26th October 2023
last_update:
date: 26 October 2023
---

The FA1.2 standard is for _fungible tokens_, which are collections of identical, interchangeable tokens.
Expand Down
3 changes: 2 additions & 1 deletion docs/architecture/tokens/FA2.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: FA2 tokens
authors: "Claude Barde, Aymeric Bethencourt, Tim McMackin"
lastUpdated: 26th October 2023
last_update:
date: 26 October 2023
---

The FA2 standard supports several different token types, including:
Expand Down
5 changes: 3 additions & 2 deletions docs/dApps/best-practices.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Best practices and avoiding flaws
authors: Claude Barde
lastUpdated: 10th July 2023
last_update:
date: 10 July 2023
---

When creating a frontend application that uses the Tezos blockchain, you will most probably use a JavaScript framework, may it be React, Vue, Svelte, or another one.
Expand All @@ -24,7 +25,7 @@ Connecting and interacting with a wallet is an experience specific to web3 apps

1. **Do not force wallet connection**: the request to connect a user's wallet must come from the user interacting with your dapp, not appear out of nowhere, for example, when the dapp loads. Let the user get some details about your dapp before they decide to connect their wallet.
2. **Choose the right position for the wallet button**: the users visiting your dapp will expect to find the button to connect or interact with their wallet in the upper part of the interface, on the left or right side. The button must be clearly visible and discoverable in one second.
3. **Display wallet information**: the minimal information to display is the address of the connected account to let the users know which account they are using. A lot of dapps on Tezos also display the XTZ balance, as well as the network the dapp is connected to (mainnet/testnet) or the wallet used for the connection.
3. **Display wallet information**: the minimal information to display is the address of the connected account to let the users know which account they are using. A lot of dapps on Tezos also display the XTZ balance, as well as the network the dapp is connected to (Mainnet/testnet) or the wallet used for the connection.
4. **Offer the option to select the RPC node**: network traffic can get busy on Tezos, but you can provide a better UX by adding a switch for a different Tezos node if the one selected by default becomes too slow. Some power users may also like having the choice to enter the address of their favourite node!
5. **Add an option to disconnect the wallet**: some users want to switch wallets while using your dapp, so there must be a way to disconnect their wallet and connect a new one effortlessly.

Expand Down
3 changes: 2 additions & 1 deletion docs/dApps/samples.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Sample dApps
author: "Tim McMackin"
lastUpdated: 19 October 2023
last_update:
date: 19 October 2023
---

Here are some sample web applications that access Tezos:
Expand Down
3 changes: 2 additions & 1 deletion docs/dApps/taquito.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Taquito dApp SDK for TypeScript
authors: Claude Barde
lastUpdated: 10th July 2023
last_update:
date: 10 July 2023
---

## Introduction
Expand Down
7 changes: 4 additions & 3 deletions docs/dApps/unity.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Tezos SDK for Unity
authors: John Joubert
lastUpdated: 5th June 2023
last_update:
date: 5 June 2023
---

The Tezos SDK for Unity offers a comprehensive toolkit designed to facilitate Web3 gaming development. This SDK provides game developers with the necessary tools to:
Expand All @@ -20,10 +21,10 @@ This Getting Started guide covers the following five steps essential for using t
1. Installation of the Unity Editor (if not already installed)
2. Installation of the Tezos Integration SDK in the Unity Editor within a new project
3. Obtaining a Tezos-compatible wallet as an app or browser plugin (we'll use the **Temple** wallet for our [Inventory Sample Game](https://opentezos.com/gaming/unity-sdk/inventory-sample-game))
4. Creating a wallet account for a test network (`ghostnet`) and acquiring test currency from an appropriate faucet
4. Creating a wallet account for the Ghostnet test network and acquiring test currency from an appropriate faucet
5. Linking this wallet account with the new Unity project

By following these steps, your Unity app will be connected to the Tezos GhostNet test network via your specific wallet address. This allows you to invoke specific functionality on smart contracts you've created and deployed to GhostNet, as demonstrated in our [Inventory Sample Game](https://opentezos.com/gaming/unity-sdk/inventory-sample-game).
By following these steps, your Unity app will be connected to the Tezos Ghostnet test network via your specific wallet address. This allows you to invoke specific functionality on smart contracts you've created and deployed to GhostNet, as demonstrated in our [Inventory Sample Game](https://opentezos.com/gaming/unity-sdk/inventory-sample-game).

Explore the [Inventory Sample Game](https://opentezos.com/gaming/unity-sdk/inventory-sample-game) project and consult our [API Documentation](https://opentezos.com/gaming/unity-sdk/api-documentation/) to learn more about the exposed methods of our SDK, both for establishing wallet connections and for calling specific smart-contract entrypoints and Tezos data-view functions.

Expand Down
3 changes: 2 additions & 1 deletion docs/dApps/wallets.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: Connecting to wallets
authors: Claude Barde
lastUpdated: 10th July 2023
last_update:
date: 10 July 2023
---

## Overview of wallets
Expand Down
Loading

1 comment on commit 7a4be6e

@vercel
Copy link

@vercel vercel bot commented on 7a4be6e Nov 9, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.