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
- Contrats du protocole principal
- Système de jetons
- Gouvernance
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.Controller
Controller
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 ArbiscanPurpose:
- Central address registry for all protocol contracts
- Enables contract upgrades while maintaining a stable entry point
- Provides pause functionality for emergency situations
getContract()- Get address of a contract by namesetContract()- Set address of a contract by namepause()/unpause()- Emergency pause for critical situations

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.BondingManager
BondingManager
Address:See on ArbiscanPurpose:
- 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
Bond()- Delegate stake to an orchestratorTranscoder()- Register as an orchestrator with reward/fee parametersUnbond()- Start withdrawal process (with lock period)Reward()- Called by orchestrators to mint inflationary rewardsClaimEarnings()- 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.TicketBroker
TicketBroker
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
FundDepositAndReserve()- Broadcaster deposits funds for paymentsRedeemWinningTicket()- Orchestrator redeems a winning ticketUnlock()- Start withdrawal processWithdraw()- 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.RoundsManager
RoundsManager
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
InitializeRound()- Initialize new roundCurrentRound()- Get current round numberBlockHashForRound()- 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.Minter
Minter
Purpose:
- Manages LPT token inflation schedule
- Calculates mintable tokens per round
- Adjusts inflation based on target bonding rate
- Called by BondingManager during reward distribution
CurrentMintableTokens()- Calculate tokens to mint for rewardsInflation(),InflationChange()- Query inflation parameters
ServiceRegistry: Orchestrator Discovery
Le ServiceRegistry mappe les adresses Ethereum aux URI de service pour la découverte d’orchestrateur.ServiceRegistry
ServiceRegistry
Purpose:
- Allows orchestrators to advertise their network endpoints
- Enables broadcasters to discover and connect to orchestrators
- Stores URI strings on-chain
SetServiceURI()- Orchestrator registers their endpointGetServiceURI()- 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.MerkleSnapshot
MerkleSnapshot
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
CreateSnapshot()- Create snapshot at current roundMerkleRoot()- Get merkle root for a round
Contrats de jeton et d’utilité
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.LivepeerToken
LivepeerToken
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
Transfer(),BalanceOf(),TotalSupply()- Standard ERC20 operationsApprove()- 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.BridgeMinter
BridgeMinter
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.LivepeerTokenFaucet
LivepeerTokenFaucet
Purpose:
- Provides test tokens on testnets
- Rate-limited token requests
- Development and testing support
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.Governor
Governor
Purpose:
- Handles protocol upgrades through a multi-step transaction proposal and execution process
Propose()- Submit a new proposalQueue()- Queue a proposal for executionExecute()- 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.LivepeerGovernor
LivepeerGovernor
Purpose:
- On-chain voting on protocol proposals
- Weighted by bonded stake
- Implements governance mechanisms
CastVote()- Vote on governance proposalsCastVoteWithReason()- Vote with explanation
Trésorerie: On-chain Treasury Management
Trésorerie gère la trésorerie on-chain pour le financement et la comptabilité.Treasury
Treasury
Purpose:
- Manages protocol treasury for funding
- Tracks allocations and expenditures
- Funds Special Purpose Entities (SPEs)
Deposit()- Add funds to the treasuryWithdraw()- Allocate funds to recipients