Skip to content

JohnBortotti/agora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agora

Agora is a distributed computing protocol powered by blockchain technology.

repository structure

  • core_protocol: core protocol implementation.

    • core: node/peer implementation handling network communication and consensus mechanisms.
    • database: key-value database used to manage the blockchain state.
    • virtual_machine: virtual machine for executing smart contracts.
  • explorer: a simple node explorer webpage, written using the Flask framework, for visualizing network activity.

  • agora_lang_compiler: compiler implementation for the Agora smart contract language.

    • lexer: performs lexical analysis to convert source code into tokens.
    • parser: builds abstract syntax tree from tokens.
    • ast: defines the abstract syntax tree structure.
    • code_gen: generates executable code for the virtual machine.
  • vm_debugger: interactive debugger for the virtual machine.

    • Step-by-step execution of bytecode
    • Stack, memory, and storage inspection
    • Breakpoint support
    • Program state visualization
  • docs: documentation and notes about the project.

check out docs

TODO

Lang Compiler

  • Function dispatcher (ABI)
    • Read payload data
    • COPY instruction
    • payload arguments
    • Mappings (storage read/write)

Smart Contracts

  • Persistent storage
  • Add bloom filter to track events

Node

  • Optimizations and fixes
    • Optimize block broadcasting (remove cyclical requests)
    • Implement singleton secp256k1 context

Main Goal

  • Compile and deploy a simple token contract on the network

About

distributed computing protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published