Introduction
Protocol Specification
1.
Data Structures
1.1.
Access Keys
1.2.
Accounts
1.3.
Block and Block Header
1.4.
Data Types
1.5.
Merkle Proofs
1.6.
Transaction
2.
Chain Specification
2.1.
Block Processing
2.2.
Consensus
2.3.
Light Client
2.4.
Selecting Chunk and Block Producers
2.5.
Transactions in the Blockchain Layer
2.6.
Upgradability
2.7.
Epochs and Staking
2.7.1.
Epoch
2.7.2.
EpochManager
2.7.3.
Staking and slashing
3.
Network Specification
3.1.
Messages
3.2.
Routing Table Exchange Algorithm
4.
Runtime Specification
4.1.
Account Receipt Storage
4.2.
Actions
4.3.
Applying chunk
4.4.
Components
4.4.1.
Runtime Crate
4.4.2.
Bindings Specification
4.4.2.1.
Context API
4.4.2.2.
Economics API
4.4.2.3.
Math API
4.4.2.4.
Miscellaneous API
4.4.2.5.
Promises API
4.4.2.6.
Registers API
4.4.2.7.
Trie API
4.5.
Fees
4.6.
Function Call
4.7.
Contract Preparation
4.8.
Receipts
4.9.
Refunds
4.10.
Runtime
4.11.
Transactions
4.12.
Scenarios
4.12.1.
Cross-ContractCall
4.12.2.
Financial Transaction
5.
Economics
6.
GenesisConfig
6.1.
ExtCostsConfig
6.2.
VMConfig
6.3.
StateRecord
6.4.
RuntimeConfig
6.5.
RuntimeFeeConfig
6.5.1.
AccessKeyCreationConfig
6.5.2.
ActionCreationConfig
6.5.3.
DataReceiptCreationConfig
6.5.4.
Fee
6.5.5.
Fraction
6.5.6.
StorageUsageConfig
Architecture
7.
Overview
8.
How neard works
8.1.
How Sync Works
8.2.
Garbage Collection
8.3.
How Epoch Works
8.4.
Transaction Routing
8.5.
Transactions And Receipts
8.6.
Cross shard transactions - deep dive
8.7.
Gas
8.8.
Receipt Congestion
8.9.
Meta transactions
8.10.
Serialization: Borsh, Json, ProtoBuf
8.11.
Proofs
8.12.
Resharding V2
8.13.
Optimistic block
9.
How neard will work
9.1.
Catchup and state sync improvements
9.2.
Malicious producers and phase 2
10.
Storage
10.1.
Storage Request Flow
10.2.
Trie Storage
10.3.
Database Format
10.4.
Flat Storage
11.
Network
12.
Gas Cost Parameters
12.1.
Parameter Definitions
12.2.
Gas Profile
12.3.
Runtime Parameter Estimator
Practices
13.
Overview
14.
Rust 🦀
15.
Workflows
15.1.
Run a Node
15.2.
Deploy a Contract
15.3.
Run Gas Estimations
15.4.
Localnet on many machines
15.5.
IO tracing
15.6.
Profiling
15.7.
Benchmarks
15.7.1.
Synthetic Workloads
15.7.2.
Native Transfer Chunk Application
15.8.
Working with OpenTelemetry Traces
15.9.
Futex contention
16.
Code Style
17.
Documentation
18.
Tracking Issues
19.
Security Vulnerabilities
20.
Fast Builds
21.
Testing
21.1.
Python Tests
21.2.
Testing Utils
21.3.
Test Coverage
22.
Protocol Upgrade
Advanced configuration
23.
Networking
Custom test networks
24.
Starting a network from mainnet state
Misc
25.
Overview
26.
State Sync Dump
27.
Archival node - recovery of missing data
Light (default)
Rust
Coal
Navy
Ayu
Guide to Nearcore Development
Overview
This chapter describes various data structures used by NEAR Protocol.
Data Structures
Access Keys
Accounts
Block and Block Header
Data Types
Merkle Proofs
Transaction