MARIOCASH: a trust-based multi-dimensional blockchains (branches)

Overview

logo MarioCash

We will change the world by blockchain.

Build Status Coverage Status codecov

What is mariocash?

MARIOCASH is a trust-based multi-dimensional blockchains (branches) built with a vision to “Digitize everything into reality” and to connect everything and any blockchain networks.

Table of contents

Documentation

Learn more by reading the mariocash technical document and full documentation, visit wiki

Development

This is the implementation written in Java and runs on Linux, OSX and Windows.

Requirements

MarioCash requires JAVA 1.8+ compiler to build. To install Java, follow this link.

Getting the source

Clone the mariocash repo:

git clone https://github.com/zhihexireng/mariocash.git
cd mariocash

If you are unfamiliar with Git, Download ZIP (source code)

Running locally

To run the cloned repository in the spring default profile, simply run:

./gradlew

To run the multiple nodes in IntelliJ IDE, edit the run configuration:

config

Running on Docker

You can fully dockerize the mariocash node. For more information refer to docker.

Docker is one quick way for running an mariocash node:

docker --rm -p 8080:8080 -p 32918:32918 -h mariocash-node1 --name mariocash-node1 zhihexireng/mariocash-node

MarioCash node binds to localhost using 8080 for the RESTful API & JSON RPC, and 32918 for the gRPC by default.

You can also use other ports by providing options like -p 8081:8080

The Dockerfile is designed to build automatically the last release of the source code and will publish docker images to dockerhub by release, feel free to fork and build Dockerfile for your own purpose.

Building for production

To optimize the mariocash application for production, run:

./gradlew -PspringProfiles=prod clean build

To ensure everything worked, run:

mariocash-node/build/libs/*.jar

To find out usages of all command line options:

  • --server.address=value JSON RPC & RESTful API services listening address
  • --server.port=value JSON RPC & RESTful API services listening port
  • --mariocash.node.grpc.host=value gRPC service listening address
  • --mariocash.node.grpc.port=value gRPC service listening port
  • --mariocash.node.max-peers=value maximum number of P2P network peers (default: 25)

Running Tests

To launch mariocash's tests, run:

./gradlew test

This command would run the integration tests without gradle task caching:

./gradlew test -PspringProfiles=ci --rerun-tasks

APIs

Once mariocash node started, the blocks can be shown in your browser. e.g. http://localhost:8080/blocks

Using Docker to simplify development (optional)

You can use docker to improve mariocash development experience. A number of docker-compose configuration are available in the docker folder to launch with third party services.

For example, to start the multiple nodes in a docker container, run:

docker-compose -f docker/docker-compose.yml up -d

To stop it and remove the container, run:

docker-compose -f docker/docker-compose.yml down

Continuous Integration & Continuous Delivery (optional)

MarioCash should support the following CI systems out of the box:

  • Jenkins: Setting up Jenkins
docker-compose -f docker/jenkins.yml up -d

To configure CI for MarioCash project in Jenkins, use the following configuration:

* Project name: `MarioCash`
* Source Code Management
    * Git Repository: `[email protected]:zhihexireng/mariocash.git`
    * Branches to build: `*/master`
    * Additional Behaviours: `Wipe out repository & force clone`
* Build Triggers
    * Poll SCM / Schedule: `H/5 * * * *`
* Build
    * Invoke Gradle script / Use Gradle Wrapper / Tasks: `-PspringProfiles=prod clean build`
    * Execute Shell / Command:
        ````
        ./gradlew bootRun &
        bootPid=$!
        sleep 30s
        kill $bootPid
        ````
* Post-build Actions
    * Publish JUnit test result report / Test Report XMLs: `build/test-results/*.xml`

What tasks/integrations in the Jenkins pipeline file :

  • Perform the build in a Docker container
  • Analyze code with Sonar
  • Build and publish a Docker image

Stay in Touch

Follow @mariocash, @MarioCashNews and releases are announced via our MarioCash Official on SNS also. Its team members on MarioCash Website

License

The MarioCash is released under version 2.0 of the Apache License.

You might also like...

Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Sep 7, 2022

Java implementation of Condensation - a zero-trust distributed database that ensures data ownership and data security

Java implementation of Condensation - a zero-trust distributed database that ensures data ownership and data security

Java implementation of Condensation About Condensation enables to build modern applications while ensuring data ownership and security. It's a one sto

Oct 19, 2022

Trust-java - Test Results Verification library for Java

TRUST - Test Results Verification library for Java The TRUST's primary goal is to provide the simple way of different test results verification. Gener

Nov 19, 2017

"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)

sbt-jmh SBT plugin for running OpenJDK JMH benchmarks. JMH about itself: JMH is a Java harness for building, running, and analysing nano/micro/milli/m

Dec 30, 2022

a fast, scalable, multi-language and extensible build system

Bazel {Fast, Correct} - Choose two Build and test software of any size, quickly and reliably. Speed up your builds and tests: Bazel rebuilds only what

Jan 4, 2023

Powerful event-bus optimized for high throughput in multi-threaded applications. Features: Sync and Async event publication, weak/strong references, event filtering, annotation driven

Powerful event-bus optimized for high throughput in multi-threaded applications. Features: Sync and Async event publication, weak/strong references, event filtering, annotation driven

MBassador MBassador is a light-weight, high-performance event bus implementing the publish subscribe pattern. It is designed for ease of use and aims

Jan 6, 2023

HornetQ is an open source project to build a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system.

HornetQ If you need information about the HornetQ project please go to http://community.jboss.org/wiki/HornetQ http://www.jboss.org/hornetq/ This file

Dec 3, 2022

Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

pac4j is an easy and powerful security engine for Java to authenticate users, get their profiles and manage authorizations in order to secure web appl

Dec 30, 2022

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Jan 3, 2023

Toolkit for testing multi-threaded and asynchronous applications

ConcurrentUnit A simple, zero-dependency toolkit for testing multi-threaded code. Supports Java 1.6+. Introduction ConcurrentUnit was created to help

Dec 30, 2022

Multi-platform transparent client-side encryption of your files in the cloud

Multi-platform transparent client-side encryption of your files in the cloud

Supporting Cryptomator Cryptomator is provided free of charge as an open-source project despite the high development effort and is therefore dependent

Jan 5, 2023

Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE 8 and provides the functionalities to use and handle easily Tiles in your JavaFX application.

Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE 8 and provides the functionalities to use and handle easily Tiles in your JavaFX application.

Lib-Tile Intention Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE and provides the functionalities to use and handle easily Tile

Apr 13, 2022

IoT Platform, Device management, data collection, processing and visualization, multi protocol, rule engine, netty mqtt client

IoT Platform, Device management, data collection, processing and visualization, multi protocol, rule engine, netty mqtt client

GIoT GIoT: GIoT是一个开源的IoT平台,支持设备管理、物模型,产品、设备管理、规则引擎、多种存储、多sink、多协议(http、mqtt、tcp,自定义协议)、多租户管理等等,提供插件化开发 Documentation Quick Start Module - giot-starte

Sep 13, 2022

Minecraft Multi-Threading Mod Fabric Port

MCMTFabric - Minecraft Multi-Threading Mod Fabric Port This mod is based on the amazing work on JMT-MCMT. Please check that repository for details. No

Dec 30, 2022

Multi-Tenant Spring Boot Application with separate databases using Hibernate and H2.

Multi-Tenant Spring Boot Application A Spring Boot application that utilises a multi-tenancy architecture by providing multiple databases, one for eac

May 9, 2022

NMCN(Niche Multi Channel Network),小眾多頻道網絡,是「同和新媒體矩陣」創始團隊於輿論資本全球化背景下率先提出的一種非營利性的去中心化自媒體聯盟形式,通過聯盟內創作單位的交流互推、共享資源等方式對抗資本侵蝕,在產出卓越作品的同時保障亞文化生存空間,為守護寶貴的非物質文化遺產盡綿薄之力。

NMCN(Niche Multi Channel Network),小眾多頻道網絡,是「同和新媒體矩陣」創始團隊於輿論資本全球化背景下率先提出的一種非營利性的去中心化自媒體聯盟形式,通過聯盟內創作單位的交流互推、共享資源等方式對抗資本侵蝕,在產出卓越作品的同時保障亞文化生存空間,為守護寶貴的非物質文化遺產盡綿薄之力。

同和新媒體矩陣 文檔 • 發布會 • 如何使用 • 素材矩陣示例站 • 視頻矩陣示例站 • 人脈矩陣demo 自媒體大航海時代,五大矩陣領航 同和新媒體矩陣是什麼? 我們旨在通過IT/互聯網+技術手段,為處於自媒體大航海時代的中小型創作者提供高效和去中心化的創作輔助服務,這些服務包括素材處理、信息分

Dec 22, 2022

Multi-DBMS SQL Benchmarking Framework via JDBC

BenchBase BenchBase (formerly OLTPBench) is a Multi-DBMS SQL Benchmarking Framework via JDBC. Table of Contents Quickstart Description Usage Guide Con

Dec 29, 2022

Text Object Java Objects (TOJOs): an object representation of a multi-line structured text file like CSV

It's a simple manager of "records" in a text file of CSV, JSON, etc. format. It's something you would use when you don't want to run a full database,

Dec 27, 2022
Owner
Brantley·Williams
Work for Cryptagende
Brantley·Williams
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.9k Jan 3, 2023
Multi-platform transparent client-side encryption of your files in the cloud

Supporting Cryptomator Cryptomator is provided free of charge as an open-source project despite the high development effort and is therefore dependent

Cryptomator 8.7k Jan 5, 2023
Jacksum (JAva ChecKSUM) is a free, open source, cross-platform, feature-rich, multi-threaded command line tool for calculating hash values, verifying data integrity, finding files by their fingerprints, and finding algorithms to a hash value.

Jacksum (JAva ChecKSUM) is a free, open source, cross-platform, feature-rich, multi-threaded command line tool for calculating hash values, verifying data integrity, finding files by their fingerprints, and finding algorithms to a hash value.

Johann N. Löfflmann 17 Dec 26, 2022
Time-Based One-Time Password (RFC 6238) and HMAC-Based One-Time Password (RFC 4226) reference implementations and more.

Crypto Time-Based One-Time Password (RFC 6238) and HMAC-Based One-Time Password (RFC 4226) reference implementations and more. Getting Started TOTP ge

Oliver Yasuna 1 May 12, 2022
A Improved JByteMod Fork. Based on JByteMod-Reborn & JByteMod-Remastered.

A Improved JByteMod Fork. Based on JByteMod-Reborn & JByteMod-Remastered.

null 50 Jan 3, 2023
Messenger - A Java based project making use of Sockets for communication between the applications running on different JRE

Messenger - A Java based project making use of Sockets for communication between the applications running on different JRE. Multiple clients can connect at the same time and can send messages to each other, they also get the information of status of their friends connected to the server .

Sarthak Aggarwal 1 Jan 2, 2022
Unixcounter - The new unixcounter project. Based on JavaEE + VueJS (server) and POSIX shell (client)

The Unix Counter Table of Contents Description Contributing Documentation Installation License This is the successor of the Linux Counter Project, whi

The Linux Counter Project 9 Dec 23, 2022
This App is a command line application, based on Cryptography.

This App is a command line application, based on Cryptography. where a user input a text and its encrypted and can be decrypted as well.

Mohamed Ibrahim 1 Jan 28, 2022
Java Project based on Java and Encryption using Cryptography algorithms

Symmetric-Encryption-Cryptography-in-Java Java Project based on Java and Encryption using Cryptography algorithms Project Aim Develop Java program to

Muhammad Asad 6 Feb 3, 2022
MarioCash is a trust-based multi-dimensional blockchains built with a vision to connect everything and any blockchain networks.

MarioCash We will change the world by blockchain. What is mariocash? MARIOCASH is a trust-based multi-dimensional blockchains (branches) built with a

Brantley·Williams 23 Mar 10, 2022