ilap / ShelleyStuffs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Diagrams

Click on the selected diagram to open it in Draw.io

Disclaimer: These diagrams are not accurate, even they can be completely wrong, as Cardano Shelley's been under continuous and still ongoing development and/or I misunerstood the specs.

Found some other Shelley related diagrams here: https://github.com/deshawes/shelley-mud-maps/

Dynamic Global Mempool idea

DynamicMempool.drawio.png

Mempool from a different view

  • Isolated mempool's node(s) example: Daedalus wallets, API backend (not aware of any existing yet using this, nor Blockforst, Adalite, Yoroi, CCwalet etc.)
    • Users won't experience blocking on transaction submissions from their client side (e.g. user sends some asset using Daedalus' local node instance) when the whole network is temporary congested and their mempool is not filled up by the user's transactions (i.e., size of the user's txes <= mempool capacity through the congestion time).
    • Highest resiliency on temporary network congestion.
  • Clustered mempool's node(s) example: API backends nodes, misconfigured relay and pools.
    • Users won't experience blocking until all ther tx submission requests from clients (API frontends as an example) fill up their shared mempool.
    • Lower resiliency on temporary network congestion.
  • Global mempool's node(s) example: properly configured relays, pools, API backend nodes etc.
    • Users won't experience blocking until all the requests from all the clients in the network (by all Daedalus wallet's, all light clients, all other tools in the network) fill up the nodes mempool.
    • Lowest resiliency on temporary network congestion.

Keep in mind:

  • that the whole Cardano Network is underutilised.
  • the picture below an oversimplified description/diagram of the network.
  • the transactions are cleared from the mempool (oversimplified explanation) by
    • validation of the received blocks (accepted)
    • revalidation of the transactions in the mempool (rejected by expiration etc.)

VirtualMempools.png

Plutus' Off-Chain Tx and On-Chain Context comparison

Plutus_Tx_vs_Context.png

Min UTxO ADA calculation

ShelleyTransaction

References

Shelley Transaction Changes

An Other Disclaimer: This diagram is not accurate at all, so you all are welcome to contribute for correcting my mistakes.

Initial shelley transaction contains:

  • transactin body, which hash is used for public key based witness
  • transaction witness set, a set of different type of witnesses and
  • transaction metadata, a placeholder for optional metadata.

The following iterative updates, by Hard Fork Combinator, had been or will be made to switch to the Goguen era:

ShelleyTransaction

References

Cardano's Ledger Spec Multi-Aset (MA) explanations

Certificates

Operational Certificate

  • VKey_ev - operational hot key
  • n - Certificate issue nuber (cold counter)
  • c0 - start KES Period and
  • Cold key Signature
  • Cold verification key

Pool Certificate

It is based only on pool param structure

{
    "poolParams": {
        "publicKey": "a3bdfcc9630daa7d1da3c1efaa611bdd1f507e62bde8aca8936a070a",
        "vrf": "53cfce04b70accb948250f2c7b18d07ede4db525464612368f0d34327dafd415",
        "pledge": 250000000000,
        "cost": 340000000,
        "margin": 2.99e-2,
        "rewardAccount": {
            "network": "Testnet",
            "credential": {
                "key hash": "842dd0ee48839c992a9cd5f1a7b34b40a1fa3b12e6743e3adcf07dba"
            }
        },
        "owners": [
            "842dd0ee48839c992a9cd5f1a7b34b40a1fa3b12e6743e3adcf07dba"
        ],
        "relays": [
            {
                "single host name": {
                    "port": 8900,
                    "dnsName": "relays-alonzo.poolunder.com"
                }
            }
        ],
        "metadata": {
            "url": "https://www.poolunder.com/testnet_undr.json",
            "hash": "d808d07705e1e6a478edc6501f134bd9f5c916c6af0c5ca002dbc16ca380e7fa"
        }
    },
    "futurePoolParams": null,
    "retiring": null
}

Shelley Signing Keys

SigningKeys

References:

Network Communications

Network Communications

Transitions

TrasnitionsDetails

It turned out that the stability window is 3k/f instead of 2k

Shelley Blocks

A shelley block contains:

  • block header, which contains
    • block header body and the
    • block header body signature (cold key signature)
  • and block body which is simply the transactions of the block.

Transactions contains

  • transaction body
  • transaction witness set and an optional
  • transaction metadata

See details in the picture below.

References:

ShelleyBlock

Shelley Keys and Addresses

ShelleyKeyAndAddresses

Shelley Transaction (Simple)

TransactionSimple

Cardano Wallet Specification

WalletSpecification

HD Wallets

HD Wallets

About