Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

block production/Technical features #207

Merged
merged 34 commits into from
Dec 15, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
08092e9
block production text
augustocollado Nov 26, 2024
603985e
Adds Security providers WIP
augustocollado Nov 27, 2024
486538b
V1
augustocollado Nov 27, 2024
50cedd0
grammar
augustocollado Nov 28, 2024
0a5ab60
gramar and description
augustocollado Nov 28, 2024
11c1e12
Adds assignment mermaid diagram
augustocollado Nov 28, 2024
e5e8d78
Tanssi state
augustocollado Nov 28, 2024
b1cdf0c
appchains block
augustocollado Nov 28, 2024
fe87686
Merge branch 'main' into augustocollado/block-production
augustocollado Nov 28, 2024
391138e
changes menu entry
augustocollado Nov 28, 2024
23f9e22
new scruct
augustocollado Nov 28, 2024
7b1a811
Symbiotic
augustocollado Nov 29, 2024
80dc178
icons
augustocollado Nov 29, 2024
5861055
Symbiotic light icon
augustocollado Nov 29, 2024
3b1e555
Added mermaids
augustocollado Dec 2, 2024
17f66ef
Slashing events
augustocollado Dec 2, 2024
f93d01a
Update learn/tanssi/appchain-services/block-production.md
augustocollado Dec 2, 2024
3ce7bf7
Update learn/tanssi/appchain-services/block-production.md
augustocollado Dec 2, 2024
fb7bc9f
Update learn/tanssi/appchain-services/block-production.md
augustocollado Dec 2, 2024
6a30f0b
Update learn/tanssi/appchain-services/block-production.md
augustocollado Dec 2, 2024
71bcf14
both ends: operators and developers
augustocollado Dec 2, 2024
76dc158
corrects list formatting
augustocollado Dec 2, 2024
1ed6bb2
Apply suggestions from code review
augustocollado Dec 4, 2024
b764102
back to dancebox
augustocollado Dec 4, 2024
f606743
Back to only one bigger diagram
augustocollado Dec 5, 2024
c51533b
feedback
augustocollado Dec 9, 2024
966c776
minor change in vaults section
augustocollado Dec 9, 2024
624867d
changes class diagram for flowchart
augustocollado Dec 9, 2024
25c581f
grammarly
augustocollado Dec 9, 2024
57391bb
Note on risks
augustocollado Dec 9, 2024
758970a
expading mermaid
augustocollado Dec 9, 2024
8d175ba
Apply suggestions from code review
augustocollado Dec 11, 2024
1e8be3d
fixes diagram and adds protocol's name explicitly
augustocollado Dec 11, 2024
14fceff
diagrams
augustocollado Dec 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed images/learn/tanssi/technical/technical-4.webp
Binary file not shown.
Binary file removed images/learn/tanssi/technical/technical-5.webp
Binary file not shown.
Binary file removed images/learn/tanssi/technical/technical-6.webp
Binary file not shown.
42 changes: 3 additions & 39 deletions learn/tanssi/appchain-services/block-production.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Every new assignment works intentionally with a one-session delay, so the sequen

When a new session starts, the Tanssi protocol will put the queued assignment into effect. Sequencers will automatically change and start producing blocks in the new Tanssi appchain they've been assigned to while discarding the chain state from the previous assignment. Tanssi will also calculate the new assignment, considering changes in Tanssi appchains that might have been activated or deactivated and block producers that might have been added or removed from the pool or changed the total staked value. This new assignment will be queued for the next session.

![Sessions](/images/learn/tanssi/technical/technical-2.webp)
![Sessions](/images/learn/tanssi/appchain-services/block-production/block-production-1.webp)
albertov19 marked this conversation as resolved.
Show resolved Hide resolved

### The Role of the Tanssi Network {: #tanssi-newtwork }

Expand All @@ -96,32 +96,7 @@ Finally, Tanssi can verify that the author of an appchain block was the expected

The following diagram shows a simplified model of the data Tanssi stores in its internal state. For every active appchain (in this example, two), Tanssi stores the assigned sequencers, which are the only ones authorized to produce blocks on the appchain's behalf, proof of validity (candidate receipts) extended by the security provider's operators, the latest state root, and the latest block producer.

```mermaid
flowchart TB

subgraph general["Orchestration Info"]
direction TB
assignment1["Appchains Current Sequencer Assignment"]
assignment2["Appchains Next Session's Sequencer Assignment"]
end
subgraph appchain1["Appchain 1"]
direction LR
appchain11["Current Sequencers assigned"]
appchain12["Last Block's Proof of Validity"]
appchain13["Latest State Root"]
appchain14["Latest Block Producer"]
end
subgraph appchain2["Appchain 2"]
appchain21["Current Sequencers assigned"]
appchain22["Last Block's Proof of Validity"]
appchain23["Latest State Root"]
appchain24["Latest Block Producer"]
end

general --> appchain1
general --> appchain2

```
![Tanssi's internal state](/images/learn/tanssi/appchain-services/block-production/block-production-2.webp)

### The Role of the Appchain {: #appchain }

Expand All @@ -131,18 +106,7 @@ Leveraging this ability to access the states, the current sequencer with the aut

Once the block is filled with appchain transactions, it will be proposed as a candidate and handed over to the Tanssi chain, where the security provider's operators will ensure that the included state proofs match the state proofs from the latest state of Tanssi (preventing unauthorized block production) and that the transactions produced valid state transitions. Having verified the work of the sequencer, the operators will finalize the proposed block, including its candidate receipt in a Tanssi network block.

```mermaid
classDiagram

note for tanssi "The sequencer reads the Tanssi State"

class tanssi["Appchain Block"] {
Appchain's Current Sequencers Assignment
Tanssi's State Root
Sequencer operator's signature
Appchain Transactions()
}
```
![Tanssi-powered network block](/images/learn/tanssi/appchain-services/block-production/block-production-3.webp)
albertov19 marked this conversation as resolved.
Show resolved Hide resolved

## Block Production Fees {: #block-production-fees }

Expand Down