• This repository has been archived on 14/Apr/2022
  • Stars
    star
    545
  • Rank 78,983 (Top 2 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created almost 8 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Scorex 2.0 Core

Scorex 2 - The modular blockchain framework Build Status Coverage Status

Scorex and Scorex 2

Scorex 2 is modular blockchain framework is Scala language which allows for free and limitless experimentation with a wide variety of designs.

It is a complete rewrite of Scorex framework, which can be found at https://github.com/input-output-hk/Scorex.

Motivation

If you have a new design for a blockchain system, there are few options available in regards with an implementation:

  • you can fork codebase of a Bitcoin or Ethereum client. However, such clients are optimized towards concrete protocol, thus implementing something different would be a cumbersome task.
  • there are some modular frameworks, such as Scorex, where you can change consensus layer, or transactional layer, or both. Still, these modules have concrete interfaces, so for many designs more low-level and abstract approach was needed.

We have read a lot of research papers to make Scorex 2 supporting their implementations. Its abstract core allows for implementing a broad range of systems, including ones with multiple types of blocks and non-linear history.

Features

  • Compact, functional code
  • Modular design with fine granularity
  • Scala language
  • Asynchronous networking layer on top of TCP
  • JSON API
  • Cryptographic primitives externalized into separate scrypto framework
  • Some examples provided, including one working in production

Documentation and Communication.

Please join maillist at https://groups.io/g/scorex-dev. There is tutorial in progress, available at https://github.com/ScorexFoundation/ScorexTutorial.

Examples

There are two examples of blockchain systems built with Scorex:

Development Plans

Final 1.0 release of Scorex 2 is not done but near. Currently we're polishing and auditing the codebase towards the release. Then we will consider further plans, possibly including:

  • Improved networking layer
  • Support for Scala 3
  • More examples, possibly including non-linear systems (such as DAGs)

Contributions

Contributions are welcome! Please take a look into issues. Testing codebase is still not perfect at the moment, so writing a test is not just good for start, but useful for the product as well.

New examples would be very helpful as well!

Release

To publish release version to Sonatype:

  • make a tag with version number vX.Y.Z (used by sbt-dynver to set version in build.sbt);
  • use the new tag to make a Github release, which triggers release.yml workflow and publishes release version to Sonatype;

More Repositories

1

blockchain-explorer

JavaScript
1,394
star
2

minifabric

Do fabric network the right and easy way.
Jinja
299
star
3

blockchain-carbon-accounting

This project implements blockchain applications for climate action and accounting, including emissions calculations, carbon trading, and validation of climate claims. It is part of the Linux Foundation's Hyperledger Climate Action and Accounting SIG.
TypeScript
181
star
4

university-course

A Hyperledger Lab focused developing materials for a university course.
TeX
179
star
5

fablo

Fablo is a simple tool to generate the Hyperledger Fabric blockchain network and run it on Docker. It supports RAFT and solo consensus protocols, multiple organizations and channels, chaincode installation and upgrade.
Shell
179
star
6

mirbft

MirBFT is a consensus library implementing the Mir consensus protocol.
Go
157
star
7

convector

Smart Contract Systems the easy way. Open source development framework.
TypeScript
145
star
8

yui-ibc-solidity

IBC in Solidity
Solidity
123
star
9

private-data-objects

The Private Data Objects lab provides technology for confidentiality-preserving, off-chain smart contracts.
C++
112
star
10

fabric-operations-console

A UI for managing Fabric peers, orderers, and CAs
JavaScript
103
star
11

hyperledger-labs.github.io

Hyperledger Labs
100
star
12

SmartBFT

Implementation of the SmartBFT consensus library (https://arxiv.org/abs/2107.06922)
Go
88
star
13

fabric-token-sdk

The Fabric Token SDK is a set of API and services that lets developers create token-based distributed application on Hyperledger Fabric.
Go
80
star
14

microfab

Microfab is a containerized Hyperledger Fabric runtime for use in development environments
Go
73
star
15

fabric-docs-cn

This lab has graduated to the overall Fabric project.
71
star
16

TrustID

Decentralized Identity solution compatible with different Hyperledger platforms.
TypeScript
67
star
17

open-enterprise-agent

Open Enterprise Cloud Agent
Scala
62
star
18

minbft

Implementation of MinBFT consensus protocol.
Go
60
star
19

fabric-operator

Hyperledger Fabric Kubernetes Operator
Go
57
star
20

business-partner-agent

The Business Partner Agent is a SSI wallet and controller based on aries cloud agent python.
Java
55
star
21

weaver-dlt-interoperability

A platform, a protocol suite, and a set of tools, to enable interoperation for data sharing and asset movements between independent networks built on heterogeneous blockchain, or more generally, distributed ledger, technologies, in a manner that preserves the core blockchain tenets of decentralization and security.
Go
52
star
22

fabric-smart-client

The Fabric Smart Client is a new Fabric Client that lets you focus on the business processes and simplifies the development of Fabric-based distributed application.
Go
51
star
23

go-perun

πŸŒ” Perun's Blockchain-Agnostic State Channels Framework in Go.
Go
47
star
24

hyperledger-fabric-based-access-control

A Hyperledger Fabric Based Access Control system to mediate access control flow from centralized applications.
HTML
41
star
25

nephos

Python library and Helm charts for deployment of Hyperledger Fabric to Kubernetes.
Python
37
star
26

nft-auction

NFT Auction application lets user to create NFTs and auction them off to other users in a marketplace model using Hyperledger Fabric
JavaScript
37
star
27

eThaler

Model a sample CBDC in TTF and implement in Besu
Java
34
star
28

yui-fabric-ibc

IBC implementation in Hyperledger Fabric
Go
34
star
29

cordentity

The Cordentity app integrates Indy capabilities into the Corda platform.
Kotlin
32
star
30

yui-relayer

IBC Relayer implementations for heterogeneous blockchains
Go
32
star
31

cc-tools

The cc-tools package provides a relational-like framework for programming Hyperledger Fabric chaincodes.
Go
32
star
32

orion-server

Go
30
star
33

yui-docs

Solidity
29
star
34

fabex

Block explorer for Hyperledger Fabric
Go
28
star
35

fabric-chaincode-wasm

Hyperledger Fabric Chaincode using WebAssembly
Go
28
star
36

fabric-chrome-extension

Hyperledger Fabric Chrome Extension
JavaScript
28
star
37

fabric-builder-k8s

Kubernetes chaincode builder for Hyperledger Fabric
Go
27
star
38

pubsub-interop

A blockchain interoperability solution for permissioned blockchain networks based on a publish/subscribe pattern.
HTML
26
star
39

cc-tools-demo

Basic example of how to use cc-tools to easily program a Hyperledger Fabric chaincode.
Shell
25
star
40

fabric-opssc

Operations Smart Contract (OpsSC) for Hyperledger Fabric v2.x
Go
23
star
41

blockchain-analyzer

Analyze ledger data stored within a Hyperledger Fabric peer (key updates and operational data such as number of blocks and transactions).
Go
23
star
42

fabric-chaincode-haskell

Haskell support for smart contracts in Hyperledger Fabric
Haskell
23
star
43

pluggable-hcs

Go
20
star
44

yui-corda-ibc

IBC implementation in Corda
Kotlin
20
star
45

sawtooth-healthcare

This project focuses on interaction between Insurer, Insured Person (Patient), and Medical Facility
Python
20
star
46

harmonia

Regulated Network Interoperability
Java
20
star
47

acapy-java-client

Aries Cloud Agent Python Java Client Library
Java
18
star
48

agora-glass_pumpkin

agora-glass_pumpkin
Rust
18
star
49

perun-node

State channel node of the blockchain-agnostic state channels framework Perun.
Go
18
star
50

umbra

This lab is to make running Hyperledger distributed ledgers under the Mininet platform.
Python
18
star
51

blockchain-verifier

bcverifier: Blockchain verification tool
TypeScript
17
star
52

fabric-machine

Xilinx Blockchain Machine for Hyperledger Fabric.
Go
14
star
53

crypto-lib

A lab for experimentation on creating shared cryptography modules for cross-project collaboration
Rust
14
star
54

aifaq

AI FAQ Proof-of-Concept project: it provides a chatbot that replies to the questions on Hyperledger Ecosystem
Jupyter Notebook
14
star
55

z-mix

z-mix will offer a generic way to create Zero-Knowledge proofs, proving statements about multiple cryptographic building blocks, containing signatures, commitments, and verifiable encryption.
Rust
14
star
56

cckit

Programming toolkit for developing and testing Hyperledger Fabric applications, started as https://github.com/s7techlab/cckit
Go
13
star
57

private-transaction-families

Provides a mechanism for privacy over Hyperledger Sawtooth by enforcing a policy of access control to the ledger.
C
13
star
58

agora-unknown_order

agora-unknown_order
Rust
12
star
59

hlf-connector

Integrate with Hyperledger Fabric using REST and Kafka with Block and Chaincode Event emitter.
Java
12
star
60

SParts

The Software Parts (SParts) lab delivers a Sawtooth-based ledger that provides both accountability and access to the open source components used in the construction of a software part. A software part is any software component (e.g., library, application, container or an entire operating system runtime) that is comprised of between 0% and 100% open source.
Go
12
star
61

fabric-multi-channel-network-samples

This lab provides samples for multi channel network using Hyperledger Fabric.
Shell
11
star
62

fabric-block-archiving

Go
11
star
63

keyhole-fabric-api-gateway

Client Access to Hyperledger Fabric Blockchain Network through Restful API's
JavaScript
11
star
64

PerformanceSandBox

Sandbox for Hyperledger Projects Performance research usage
Shell
11
star
65

orion-sdk-go

Go
10
star
66

solidity2chaincode

This tool converts Solidity contract into Javascript chaincode through source-to-source translation for running them onto Hyperledger Fabric.
JavaScript
9
star
67

bdls-lab

BDLS
Go
9
star
68

cardea-mobile-agent

JavaScript
9
star
69

perun-eth-contracts

πŸŒ” Perun's Ethereum State Channel Contracts
TypeScript
9
star
70

hyperledger-community-management-tools

Tools used to manage and evaluate the Hyperledger Community
JavaScript
9
star
71

solang-vscode

A VSCode plugin for a Solidity to WASM compiler written in Rust
Rust
8
star
72

perun-doc

Blockchain-agnostic state channels framework
Python
8
star
73

learning-tokens

Uses the composable Interwork Alliance Token Taxonomy Framework (IWA TTF) to produce a Learning Token
TypeScript
8
star
74

modern-pharmacy-management

This Lab will focus on leveraging blockchain to transform and modernize prescriptions management by enabling flexibility and managing fraud
Shell
8
star
75

cardea

8
star
76

fabric-ansible-collection

Ansible collection for building Hyperledger Fabric networks
Python
8
star
77

chaincode-analyzer

Go
8
star
78

patient-consent

Python
7
star
79

aries-fabric-wrapper

TypeScript
7
star
80

karma-charity-platform

Blockchain-based charity foundation platform
TypeScript
7
star
81

fabric-chaincode-ocaml

OCaml support for smart contracts in Hyperledger Fabric
OCaml
7
star
82

weft

CLI tool to work with Hyperledger Fabric identities and connection profiles; enables conversion between the various forms used by different codebase.
TypeScript
7
star
83

besu-operator

Kubernetes operator to provide an easier way of packaging, deploying, and managing Hyperledger Besu network.
Go
7
star
84

did-webs-resolver

A reference implementation for the did:webs DID method specified here https://github.com/trustoverip/tswg-did-method-webs-specification. The original work for the reference impl started here https://github.com/WebOfTrust/did-keri-resolver
Python
7
star
85

fabric-consortium-management

Go
5
star
86

byzantine-config

GUI Utility that simplifies creating configuration blocks and generating user keys
JavaScript
5
star
87

perun-cosmwasm-backend

Go-Perun CosmWasm Backend
Go
5
star
88

dancap

A lab for exploring attestation portability
C++
5
star
89

cardea-mobile-secondary-verifier-agent

JavaScript
5
star
90

documentation-template

Template for creating documentation for Hyperledger projects
HTML
5
star
91

HL-Starterkit

Hyperledger CLI Starter Kit
Shell
5
star
92

fabric-topologies

Scripts and configurations to easily setup various Hyperledger Fabric topologies that exercise advanced Hyperledger Fabric capabilities.
Shell
4
star
93

perun-credential-payment

Trustless payment for verifiable credentials using go-perun.
Go
4
star
94

aries-sdk-mendix

Aries SDK for Mendix low-code platform
SCSS
4
star
95

fabric-vms-provision

This entry will provide an example on how to provision, using Ansible, Hyperledger Fabric native binaries on multiple Softlayer vms. A build your second network example.
Python
4
star
96

milk-donor

Donor Milk Transparency and Traceability
JavaScript
3
star
97

pdo-contracts

C++
3
star
98

business-partner-agent-chart

Smarty
2
star
99

perun-eth-backend

Ethereum backend for the go-perun state channel library.
Go
2
star
100

fabric-lightweight-client

Hyperledger Fabric Lightweight Client
2
star