open
close
Libra

Libra

White Paper
  • Vision
  • Association
  • Developers
  • Learn
  • Media
  • White Paper

Developers

/Libra Docs
  • Overview
  • Libra Docs
  • Governance
  • Community
  • GitHub
open
close

›READMEs

Learn About Libra

  • Welcome
  • Libra Protocol: Key Concepts
  • Life of a Transaction
  • Technical Papers

    • The Libra Blockchain
    • Move: A Language With Programmable Resources
    • State Machine Replication in the Libra Blockchain

Try Libra Core

  • My First Transaction
  • Getting Started With Move
  • Run a Local Network
  • Run Move Programs Locally

Community

  • Libra Open Source
  • Contribution Guide
  • Coding Guidelines
  • Reporting Vulnerabilities

Libra Codebase

  • Libra Core Overview
  • READMEs

    • Admission Control
    • Bytecode Verifier
    • Consensus
    • Crypto
    • Mempool
    • Move IR Compiler
    • Move Language
    • Network
    • Storage
    • Virtual Machine

Reference

  • Libra CLI
  • Glossary
Edit

Admission Control

Admission Control (AC) is the public API endpoint for Libra and it takes public gRPC requests from clients.

Overview

Admission Control (AC) serves two types of requests from clients:

  1. SubmitTransaction - To submit a transaction to the associated validator.
  2. UpdateToLatestLedger - To query storage, e.g., account state, transaction log, proofs, etc.

Implementation Details

Admission Control (AC) implements two public APIs:

  1. SubmitTransaction(SubmitTransactionRequest)
    • Multiple validations will be performed against the request:
      • The Transaction signature is checked first. If this check fails, AdmissionControlStatus::Rejected is returned to client.
      • The Transaction is then validated by vm_validator. If this fails, the corresponding VMStatus is returned to the client.
    • Once the transaction passes all validations, AC queries the sender's account balance and the latest sequence number from storage and sends them to Mempool along with the client request.
    • If Mempool returns MempoolAddTransactionStatus::Valid, AdmissionControlStatus::Accepted is returned to the client indicating successful submission. Otherwise, corresponding AdmissionControlStatus is returned to the client.
  2. UpdateToLatestLedger(UpdateToLatestLedgerRequest). No extra processing is performed in AC.
  • The request is directly passed to storage for query.

How is this module organized?

    .
    ├── README.md
    ├── admission_control_proto
    │   └── src
    │       └── proto                           # Protobuf definition files
    └── admission_control_service
        └── src                                 # gRPC service source files
            ├── admission_control_service.rs    # gRPC service and main logic
            ├── main.rs                         # Main entry to run AC as a binary
            └── unit_tests                      # Tests

This module interacts with:

The Mempool component, to submit transactions from clients. The Storage component, to query validator storage.

← Libra Core OverviewBytecode Verifier →
  • Overview
  • Implementation Details
  • How is this module organized?
  • This module interacts with:
Libra
Learn About Libra
Welcome to LibraLibra ProtocolLibra BlockchainLife of a Transaction

Try Libra Core
My First TransactionGetting Started With Move
Policies
Privacy PolicyTerms of UseCookies PolicyCode of Conduct

Community
Developer ForumNewsletter
Social
libra
Follow @libradev
© Libra Association

To help us provide relevant content, analyze our traffic, and provide a variety of features, we use cookies. By clicking on or navigating the site, you agree to allow us to collect information on and off the Libra Website through cookies. To learn more, view our Cookie Policy:

Cookies Policy