Giter Site home page Giter Site logo

codecov CI

Tagion

👋 Welcome to the Tagion project!

Tagion is a decentralized ledger for creating high volume transaction. It differs from blockchain based ledgers in that it uses a hashgraph as the consensus mechanism and a database based on a merkletree (DART) to store the bills of the system. Thus it does not need to record the entire transaction history to maintain integrity, only the state of world is recorded.

General system documentation https://docs.tagion.org
Code documentation https://ddoc.tagion.org
Whitepaper https://www.tagion.org/resources/tagion-whitepaper.pdf

HiBON/HiRPC https://www.hibon.org

Installation

Installation tested on ubuntu 22.04, nixos-unstable

Setup steps & preflight checks

  1. First of all please be sure that you have everything, command You can run the following commands, if you are using arch, nix or ubuntu
  • Ubuntu
apt-get install git autoconf build-essential libtool dub cmake

Download a D compiler ldc or dmd

  • LLVM D compiler - ldc2 (v1.37.0)
wget https://github.com/ldc-developers/ldc/releases/download/v1.37.0/ldc2-1.37.0-linux-x86_64.tar.xz
tar xf ldc2-1.37.0-linux-x86_64.tar.xz
export PATH="path-to-ldc2/ldc2-1.37.0-linux-x86_64/bin:$PATH"
  • Reference D compiler - dmd (v2.107.1)
wget https://downloads.dlang.org/releases/2.x/2.107.1/dmd.2.107.1.linux.tar.xz
tar xf dmd.2.107.1.linux.tar.xz
export PATH="path-to-dmd2/dmd2/linux/bin64:$PATH"
  • Arch
pacman -Syu git make autoconf gcc libtool dlang cmake
  • Nix
nix develop
  1. Verify that the binaries are available and check their version (comments showing versions used as of writing)
ldc2 --version # LDC - the LLVM D compiler (1.37.0): ...
dmd --version # v2.107.1
  1. Cloning tagion repo
git clone [email protected]:tagion/tagion.git

Compiling

  1. Running tests
make test
  1. Compiling binaries
make tagion
make install
# Will install to dir specified by INSTALL=/path/to/dir
# This directory should also be in your PATH variable
# such that you can use the tools from you shell
  1. General info about build flow
# Help info
make help
# or
make help-<topic>

# Info about environment variables
make env
# or
make env-<topic>
  1. Compilation options, can be specified on the commandline or in a local.mk in the project root

Notice that if you choose to compile with ldc there is a bug which means that the unittests wont run.

# Showing the default values
ONETOOL=1 # ALL tools linked in to a single executable
          # and individual tools are symbolic links to that binary
DC=       # D compiler to use, default will try to pick between dmd and ldc2
CC=       # C compiler to use, default will try to pick between gcc and clang

Profiling

Profiling can be enabled in two way.

Buildin profiler

Enable the dmd build profiler with the PROFILE environment.

make PROFILE=1 DC=dmd <target>

The result of the profile can be sorted and displayed with the tprofile (onetool).

Profiling Valgrind

Valgrind profiler can be started with the VALGRIND environment.

Run the unittest with valgrind and callgrind.

make VALGRIND=1 unittest

Any of the test/bdd target can be executed with the VALGRIND=1.

Note. The result from the callgrind viewed with Kcachegrind.

Overview

./documents/ # Development flow docs

./src/
     /lib-* # Library source code
     /bin-* # Executable source code
     /fork-* # Vendor library compilation scripts and submodules
./bdd/ # behaviour driven tests
./tub/ # Build flow scripts

BDD-test tools

BDD-tool

Maintainers

License

The files in this repository is distributed under the DECARD Services GmbH free and grant back license
unless otherwise specified.
The parts which are distributed under other licenses include, but are not limited to the pbkdf2 module and the translated secp256k1 headers

Tagion's Projects

alpha-one icon alpha-one

Tagion AlphaOne Release. Use the Tagion Wallet CLI to send and receive Tagions.

ffi_to_d icon ffi_to_d

Simple example to call tagion mobile library from dart via ffi

fork-arsd icon fork-arsd

This is a collection of modules that I've released over the years. Most of them stand alone, or have just one or two dependencies in here, so you don't have to download this whole repo. You may find some ddoc here:http://arsdnet.net/ddoc/ or you can always ask me for help.

fork-c-ipfs icon fork-c-ipfs

IPFS implementation in C. Why C? Think Bitshares' Stealth backups, OpenWrt routers (decentralize the internet/meshnet!), Android TV, decentralized Media, decentralized websites, decentralized Apps, Browsers and mobile chat, decentralized CDN's and App Stores, RasPi's, old pc's and more...

fork-dartsdk icon fork-dartsdk

The Dart SDK, including the VM, dart2js, core libraries, and more.

fork-dstep icon fork-dstep

A tool for converting C and Objective-C headers to D modules

fork-go-transpiler icon fork-go-transpiler

Command-Line utility for compiling Go to Java or C++ using tardisgo or to JavaScript using GopherJS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.