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

A Note on Determinism

The logic for blockchain transaction processing must be deterministic. If the application logic was not made to be deterministic a consensus would not be reached among the Tendermint Core replica nodes.

Solidity on Ethereum is a great language of choice for blockchain applications because, among other reasons, it is a completely deterministic programming language. However, it is also possible to create deterministic applications using existing popular languages like Java, C++, Python, or Go. Game programmers and blockchain developers are already familiar with creating deterministic programs by avoiding sources of non-determinism such as:

  • random number generators (without deterministic seeding)

  • race conditions on threads (or avoiding threads altogether)

  • system clocks

  • uninitialised memory (in unsafe programming languages like C or C++)

  • floating point arithmetic

  • language features that are random (e.g. map iterations in Go)

While programmers can avoid non-determinism by being careful it is also possible to create a special linter or static analyser for each language to check for determinism. In future, we may work with partners to create such tools.

PreviousTransactionsNextConsensus Overview

Last updated 11 months ago