Skip to content

Commit

Permalink
data model save
Browse files Browse the repository at this point in the history
  • Loading branch information
glasgowm148 committed Dec 18, 2024
1 parent b6ecbfd commit 1a9ffbf
Show file tree
Hide file tree
Showing 3 changed files with 160 additions and 0 deletions.
16 changes: 16 additions & 0 deletions docs/dev/data-model/box/lifecycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Box Lifecycle

This page describes the journey of a box from creation to spending and destruction in the Ergo blockchain.

## Stages of a Box

1. **Creation**: A box is generated as an output of a transaction
2. **Existence**: The box remains in the UTXO set, available to be spent
3. **Spending**: The box is used as an input in a new transaction
4. **Destruction**: The box is removed from the UTXO set after being spent

## Key Characteristics

- Immutability
- Unique Identification
- Programmable Conditions
143 changes: 143 additions & 0 deletions docs/dev/data-model/data-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# The Data Model

Welcome to the heart of Ergo! This guide provides a comprehensive overview of Ergo's unique data model, based on the UTXO (Unspent Transaction Output) model, enhanced with powerful smart contract capabilities. Whether you are a developer, a researcher, or simply curious about what makes Ergo tick, this resource will equip you with the knowledge you need.

## 1. Getting Started: Understanding the Basics

### 1.1. UTXO vs. Account Model: A Paradigm Shift

* [UTXO Model Explained](accountveutxo.md): Understand the fundamental differences between Ergo's UTXO model and the account-based model used in other blockchains like Ethereum. This section highlights the benefits of the UTXO model in terms of parallelism, privacy, and scalability.

### 1.2. Foundational Concept: The Box

* [Box Overview](box.md): The fundamental unit of value and logic in Ergo. Learn how boxes extend the traditional UTXO model with programmable capabilities, making them far more than just containers of value.
* Extends traditional UTXO model with programmable capabilities
* Immutable containers of value, tokens, and executable logic
* [Box Lifecycle](lifecycle.md): Understand the journey of a box from creation to spending and destruction. This is crucial for grasping how data and value flow through the Ergo network.

## 2. Core Components: Building Blocks of the Ergo Ecosystem

### 2.1. Box Model: In-Depth

* **Core Box Mechanics**
* [Box Deep Dive](box.md): A more technical look at how boxes function, including their structure and constraints.
* **Box Internal Structures**
* [Box Modeling](box_modeling.md): Designing flexible and secure box interactions.
* [Registers](registers.md): Typed data storage within boxes.
* Enable complex data embedding and smart contract parameters.
* Learn about the different types of registers (R0-R9) and how to use them effectively in your smart contracts.
* [Box Serialization](serialization.md): Understanding how box data is serialized for storage and transmission on the network.

### 2.2. Assets and Tokens: Powering a Diverse Economy

* **Token Types and Standards**
* **Fungible Tokens**
* [Token Basics](tokens.md): Introduction to how tokens function within the Ergo ecosystem and their fundamental characteristics.
* [Asset Standard (EIP-4)](eip4.md): Detailed explanation of the standard for creating and managing tokens on Ergo.
* [Token Verification (EIP-21)](eip21.md): Learn about the verification process for tokens to ensure their authenticity and integrity.
* **Non-Fungible Tokens (NFTs)**
* [NFT Overview](index.md): Comprehensive introduction to Non-Fungible Tokens in the Ergo blockchain.
* [NFT Creation](create.md): Step-by-step guide to minting your own Non-Fungible Tokens.
* [NFT Versions (V1 vs V2)](v1v2.md): Comparison of different NFT implementation versions and their unique features.
* [On-Chain NFTs](on-chain.md): Explore how NFTs can be stored directly on the blockchain.
* [NFT Royalties](royalties.md): Understanding how royalty mechanisms work for NFT creators.
* **Special Token Concepts**
* [Perpetual Tokens](perpetual.md): Learn about tokens designed to exist indefinitely within the Ergo ecosystem.
* [Token Burning](burn.md): Explanation of how and why tokens can be permanently removed from circulation.
* [Singletons](singletons.md): Explore unique token types with special properties.
* [Auction Contract (EIP-22)](eip22.md): Technical details of the standard auction contract implementation.
* [Artwork Contract (EIP-24)](eip24.md): Specialized contract standard for managing digital artwork tokens.

### 2.3. Addressing and Identity: Navigating the Network

* **Address Fundamentals**
* [Address Basics](address.md): Core concepts of addressing in the Ergo blockchain.
* [Address Types](address_types.md): Detailed breakdown of different address formats (P2PK, P2SH, P2S) and their use cases.
* [Address Validation](address_validation.md): Methods and techniques for verifying address integrity and correctness.

### 2.4. Transactions: The Engine of Change

* **Transaction Foundations**
* [Transaction Overview](transactions.md): Fundamental principles of how transactions work in Ergo.
* [Transaction Composition](composing.md): Detailed guide to constructing complex transactions.
* [Transaction Format](format.md): Technical specification of transaction structure.
* **Advanced Transaction Mechanisms**
* [Chained Transactions](chained.md): Explore the concept of sequentially executing off-chain transactions.
* [Merkle Tree in Transactions](tx-merkle.md): Understanding how Merkle trees are used to ensure data integrity within transactions.
* [Transaction Signing](signing.md): Cryptographic principles of transaction authentication.
* [Backend Signing](sign-tx.md): Practical implementation of transaction signing techniques.
* [Transaction Validation](validation.md): Comprehensive overview of transaction verification processes.
* **Specialized Transaction Features**
* [Data Inputs (Read-Only Inputs)](read-only-inputs.md): Advanced technique for accessing data without spending boxes.
* [Transaction Fees](min-fee.md): Understanding the fee structure and calculation in Ergo.
* [Babel Fees](babel-fees.md): Innovative method of paying transaction fees using alternative tokens.
* [Babel Fees Plugin](babel-fleet.md): Technical implementation details of the Babel Fees mechanism.
* [Unified Transactions](unified.md): Exploring the concept of combining multiple transaction types.

### 2.5. Payment Standards and Protocols

* [ErgoPay Protocol (EIP-20)](eip20.md): Interaction protocol for wallet applications and decentralized applications.
* [Payment Request URI (EIP-25)](eip25.md): Standard for creating and processing payment requests.
* [Proxy Contracts (EIP-17)](eip17.md): Understanding the implementation of proxy contract mechanisms.

### 2.6. Blockchain Structure: Components and Function

* **Block Components**
* [Block Overview](block.md): Comprehensive introduction to block structure in Ergo.
* [Block Header](block-header.md): Detailed examination of block header components.
* [Block Transactions](block-transactions.md): How transactions are organized within a block.
* [AD Proofs](block-adproofs.md): Understanding the role of Authenticated Data Proofs in Ergo's stateless client model.
* [Extension Section](extension-section.md): Exploring the flexible data storage section of Ergo blocks.

## 3. Advanced Concepts: Mastering Ergo's Capabilities

### 3.1. Multi-Stage Contracts: Building Complex Applications

* [Multi-Stage Contracts in the UTXO Model](multi-stage.md): Advanced techniques for designing complex, multi-step smart contracts within the UTXO framework.

### 3.2. Data Preservation Strategies

* [Data Longevity on Ergo](#): Comprehensive strategies for ensuring long-term data availability and integrity on the Ergo blockchain. (Note: This link is currently a placeholder and needs to be developed)

### 3.3. Storage Rent: Ensuring Sustainability

* [Storage Rent Mechanism](storage-rent.md): Detailed explanation of how storage rent works to maintain network efficiency and prevent blockchain bloat.

### 3.4. Context Variables: Interacting with the Blockchain

* [Context Variables and Usage](context-variables.md): In-depth guide to using blockchain context variables like HEIGHT, SELF, INPUTS, and OUTPUTS in smart contract development.

## 4. Development: Building on Ergo

### 4.1. Common Contract Development Patterns

* [Contract Design Patterns](#): Comprehensive collection of best practices and recurring solutions for smart contract development. (Note: This link is currently a placeholder and needs to be developed)

### 4.2. Testing and Debugging

* [Testing Strategies](testing.md): Methodical approach to testing Ergo smart contracts to ensure reliability and security.
* [Debugging Guide](debugging.md): Practical techniques for identifying and resolving issues in ErgoScript contracts.

### 4.3. Best Practices

* [Smart Contract Security](ergoscript-security.md): Critical insights into avoiding common vulnerabilities and writing secure smart contracts.
* [ErgoScript Optimization](ergoscript-optimisation.md): Advanced techniques for improving the performance and efficiency of ErgoScript code.

### 4.4 Ergo Developer Tools

* [ErgoTool](ergotool.md): Command-line utility for interacting with the Ergo blockchain and managing smart contracts.
* [Model Transaction](model-tx.md): Detailed guide to creating and manipulating transaction models.
* [Payments Overview](payments.md): Comprehensive overview of payment mechanisms and implementations.

## 5. Reference: In-Depth Technical Resources

### 5.1. Underlying Data Structures

* [General Data Structures](data-structures.md): Foundational overview of data structures used in the Ergo blockchain.
* **Merkle Structures**
* [Merkle Tree](merkle-tree.md): Detailed explanation of Merkle tree implementation in Ergo.
* [Merkle Batch Proof](merkle-batch-proof.md): Advanced techniques for batch verification using Merkle proofs.
* [Merkle Extension](merkle-extension.md): Understanding the extended Merkle tree functionality.
* [Merkle Light Proof](merkle-light-proof.md): Lightweight proof verification techniques.
* [Interlink Vectors](interlink-vectors.md): Exploration of interlink vector data structure and its role in blockchain verification.
* [Proof of Proof-of-Work (PoPow)](popow.md): In-depth look at the Proof of Proof-of-Work consensus mechanism.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ nav:
- dev/get-started.md
- Students: students/index.md
- Data Model:
- dev/data-model/data-model.md
- Box:
- dev/data-model/box.md
- Registers: dev/data-model/box/registers.md
Expand Down

0 comments on commit 1a9ffbf

Please sign in to comment.