E Money Network
  • Introduction to E Money Network
  • Add E Money Network to Metamask
  • Wallet Integration
  • E-Money Tokens
  • E Money Network Mainnet and Testnet Explorer​
  • E Money Network Faucet
  • E Money Network Whitelist
  • Launching Your Dapp on E Money Network
    • Developing and Deploying Contracts​
    • Contract Verification​
    • Contract Security Checks
  • Validating on E Money Network
    • Validator nodes
    • How to run a validator node on E Money Network
    • Running Validator Node
    • EMYC Token’s Utility & Purpose
    • Install Validator node​
  • Tendermint & EVMOS
    • ABCI Overview
      • Intro to ABCI
      • Motivation
    • Gas & Fees
      • How are Gas and Fees Handled on E Money Network?​
      • Gas calculation and Transaction execution on E Money Network
    • Keyring
    • Signing
    • Transactions
    • A Note on Determinism
    • Consensus Overview
  • E Money Card FAQs
    • Is a Know Your Customer (KYC) process required to obtain an E Money Card?
    • What details are required for the KYC process?
    • Do I need to create an E Money Wallet to order an E Money Card?
    • What happens if I lose my seed phrase?
    • What happens if I forget my password?
    • How do I order an E Money Card, and are there any costs?
    • Can I have the card shipped to a different address than the one I provided during KYC?
    • My card has been delivered, what’s next?
    • What should I consider before using the E Money Card for payments?
    • Where can I use the E Money Card?
    • Can I add the E Money Card to online payment services like Google Pay and Apple Pay?
    • Which countries’ citizens are eligible to apply for an E Money Card?
    • Are there any fees I should be aware of as a user?
    • How do taxes apply when using the E Money Card?
  • E Money Card Fees
  • Branding and Logos
Powered by GitBook
On this page
  1. Tendermint & EVMOS
  2. ABCI Overview

Motivation

PreviousIntro to ABCINextGas & Fees

Last updated 3 months ago

Thus far, all blockchain "stacks" like are designed to have a monolithic design. That is, each blockchain stack is a single program that handles all the concerns of a decentralised ledger.

These concerns include P2P connectivity, the "mempool" broadcasting of transactions, consensus on the most recent block, account balances, Turing-complete contracts, user-level permissions among others. Using a monolithic architecture is typically bad practice in computer science. It makes it difficult to reuse components of the code and any attempts to do so result in complex maintenance procedures for forks of the codebase.

This is especially true when the codebase is not modular in design and suffers from "spaghetti code" issues. Another problem with monolithic design is that it limits you to the language of the blockchain stack (or vice versa). In the case of Ethereum which supports a Turing-complete bytecode virtual machine.

Therefore, this limits you to languages that compile down to this bytecode for instance Serpent and Solidity.

In contrast, our approach is to decouple the consensus engine and P2P layers from the details of the application state of the particular blockchain application. We do this by abstracting away the details of the application to an interface which is implemented as a socket protocol. Thus, the E-Money network has an interface, the Application BlockChain Interface (ABCI), and its primary implementation, the Tendermint Socket Protocol (TSP, or Teaspoon).

Bitcoin