Passer au contenu principal

Livepeer Contrats Blockchain

Livepeer utilise un système complet de contrats intelligents Ethereum pour gouverner de manière sans autorisation son réseau décentralisé. Le protocole Livepeer est actuellement déployé sur Arbitrum One et utilise un ensemble de contrats intelligents Ethereum pour gouverner :
  • Propriété et délégation du LivepeerToken (LPT)
  • Staking et sélection des opérateurs transcoder actifs (orchestrateurs)
  • Distribution des récompenses inflationnistes et des frais aux participants
  • Progression temporelle du protocole à travers les rounds
  • Traitement des paiements via un système de micropaiement probabiliste
Il existe 3 fonctions principales des contrats dans le protocole Livepeer :
  1. Contrats du protocole principal
  2. Système de jetons
  3. Gouvernance
Qui consiste en 10 contrats intelligents qui fonctionnent ensemble pour gérer le staking, les paiements, la gouvernance et la découverte de services :

Architecture d’interaction des contrats

Voici comment ces contrats interagissent les uns avec les autres :
FIX THIS DIAGRAM - unreadable

Contrats du protocole principal

Les contrats du protocole de base constituent l’épine dorsale du protocole Livepeer. Ils gèrent le staking, la délégation et la distribution des récompenses pour les orchestrateurs. Ils gèrent également la progression temporelle du protocole à travers les rounds et le traitement des paiements via un système de micropaiement probabiliste. Le Controller sert de registre central, permettant les mises à jour en modifiant les adresses d’implémentation.
Maybe put in tab view for better layout

Controller: Contract Registry

Le Controller est le registre central de tous les contrats du protocole. Tous les contrats du protocole vérifient auprès du Controller les adresses des autres contrats avec lesquels ils doivent interagir.
The Controller acts as the central registry for all other contract addresses in the protocol.It maintains a mapping of contract IDs to their addresses, enabling protocol upgrades by updating the registered implementation addresses. It uses Keccak256 hashes of contract names as keys to store their addresses, enabling upgradeable architecture without changing the Controller address itself.Address:See on Arbiscan
0xD8E8328501E9645d16Cf49539efC04f734606ee4
Purpose:
  • Central address registry for all protocol contracts
  • Enables contract upgrades while maintaining a stable entry point
  • Provides pause functionality for emergency situations
Key Operations:
  • getContract() - Get address of a contract by name
  • setContract() - Set address of a contract by name
  • pause()/unpause() - Emergency pause for critical situations
Controller

BondingManager: Staking & Delegation

Le BondingManager est le contrat le plus critique gérant l’économie du staking, l’enregistrement des orchestrateurs et la distribution des récompenses.
Address:See on Arbiscan
0x0000000000000000000000000000000000000000
Purpose:
  • Manages the transcoder (orchestrator) pool as a sorted linked list
  • Handles bonding (staking) and delegation to orchestrators
  • Distributes inflationary rewards and fees
  • Manages unbonding periods and withdrawals
  • Tracks earnings and claims
Key Operations:
  • Bond() - Delegate stake to an orchestrator
  • Transcoder() - Register as an orchestrator with reward/fee parameters
  • Unbond() - Start withdrawal process (with lock period)
  • Reward() - Called by orchestrators to mint inflationary rewards
  • ClaimEarnings() - Claim accumulated rewards and fees

TicketBroker: Probabilistic Micropayments

Le TicketBroker gère le système de paiement hors chaîne en utilisant des micropaiements probabilistes pour les paiements du diffuseur à l’orchestrateur.
Purpose:
  • Holds broadcaster deposits and reserves for micropayments
  • Validates and settles winning payment tickets
  • Manages unlock/withdrawal periods for broadcasters
  • Tracks claimed reserves per orchestrator
Key Operations:
  • FundDepositAndReserve() - Broadcaster deposits funds for payments
  • RedeemWinningTicket() - Orchestrator redeems a winning ticket
  • Unlock() - Start withdrawal process
  • Withdraw() - Complete withdrawal after unlock period

RoundsManager: Protocol Time Management

Le RoundsManager gère le système de rounds basé sur le temps du protocole où chaque round a une longueur de bloc fixe.
Purpose:
  • Defines protocol rounds (epochs) of fixed block length
  • Tracks round initialization and locking
  • Provides block hashes for ticket validation
  • Coordinates time-based protocol operations
Key Operations:
  • InitializeRound() - Initialize new round
  • CurrentRound() - Get current round number
  • BlockHashForRound() - Get L1 block hash for ticket validation

Minter: Token Inflation

Le Minter contrôle l’inflation de l’offre de jetons qui récompense les orchestrateurs actifs.
Purpose:
  • Manages LPT token inflation schedule
  • Calculates mintable tokens per round
  • Adjusts inflation based on target bonding rate
  • Called by BondingManager during reward distribution
Key Operations:
  • CurrentMintableTokens() - Calculate tokens to mint for rewards
  • Inflation(), InflationChange() - Query inflation parameters

ServiceRegistry: Orchestrator Discovery

Le ServiceRegistry mappe les adresses Ethereum aux URI de service pour la découverte d’orchestrateur.
Purpose:
  • Allows orchestrators to advertise their network endpoints
  • Enables broadcasters to discover and connect to orchestrators
  • Stores URI strings on-chain
Key Operations:
  • SetServiceURI() - Orchestrator registers their endpoint
  • GetServiceURI() - Query orchestrator’s service URL

MerkleSnapshot

MerkleSnapshot crée un instantané du pool de staking à un round donné et génère une racine merkle pour une délégation vérifiable.
Purpose:
  • Creates a snapshot of the staking pool at a given round
  • Generates a merkle root for verifiable delegation
  • Used for delegator rewards and governance
Key Operations:
  • CreateSnapshot() - Create snapshot at current round
  • MerkleRoot() - Get merkle root for a round
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Contrats de jeton et d’utilité

Livepeer moved from the Ethereum mainnet to the Arbitrum One network in 2022 to increase transaction throughput and reduce fees.
On Ethereum mainnet, only the LivepeerToken and BridgeMinter contracts remain operational; all other contracts have migrated to Arbitrum One.This ensures the token has the higher security of the Ethereum mainnet while the network enjoys the higher throughput and lower fees of Arbitrum.

LivepeerToken (LPT): ERC20 Token

Ethereum Mainnet Only Le LivepeerToken est le jeton natif du protocole utilisé pour le staking, les paiements et la gouvernance basé sur le ERC-20 standard.
Purpose:
  • ERC20 token for all economic activity in the network
  • Used for bonding/staking to orchestrators
  • Required for broadcaster deposits and payments
  • Governance voting weight
Key Operations:
  • Transfer(), BalanceOf(), TotalSupply() - Standard ERC20 operations
  • Approve() - Required before bonding or funding deposits

BridgeMinter: Token Bridge

Ethereum Mainnet Only Le BridgeMinter est un contrat de mint qui crée LPT jetons sur le réseau Arbitrum One lorsqu’il reçoit un dépôt valide depuis le réseau principal Ethereum.
Purpose:
  • Mints LPT tokens on Arbitrum One when it receives a valid deposit from the Ethereum mainnet

LivepeerTokenFaucet: Test Token Distribution

Testnets Only Le LivepeerTokenFaucet est utilisé sur les testnets pour distribuer des jetons de test LPT.
Purpose:
  • Provides test tokens on testnets
  • Rate-limited token requests
  • Development and testing support
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Contrats de gouvernance

Governor: Contract Upgrades

Gouverneur gère les mises à jour du protocole via un processus de proposition et d’exécution de transaction en plusieurs étapes.
Purpose:
  • Handles protocol upgrades through a multi-step transaction proposal and execution process
Key Operations:
  • Propose() - Submit a new proposal
  • Queue() - Queue a proposal for execution
  • Execute() - Execute a queued proposal

LivepeerGovernor: Protocol Governance

Le LivepeerGovernor implémente la gouvernance on-chain pour les mises à jour du protocole et les changements de paramètres.
Purpose:
  • On-chain voting on protocol proposals
  • Weighted by bonded stake
  • Implements governance mechanisms
Key Operations:
  • CastVote() - Vote on governance proposals
  • CastVoteWithReason() - Vote with explanation

Trésorerie: On-chain Treasury Management

Trésorerie gère la trésorerie on-chain pour le financement et la comptabilité.
Purpose:
  • Manages protocol treasury for funding
  • Tracks allocations and expenditures
  • Funds Special Purpose Entities (SPEs)
Key Operations:
  • Deposit() - Add funds to the treasury
  • Withdraw() - Allocate funds to recipients
Last modified on March 1, 2026