All Projects → blockchainsllc → in3-legacy

blockchainsllc / in3-legacy

Licence: Unknown, AGPL-3.0 licenses found Licenses found Unknown LICENSE AGPL-3.0 LICENSE.AGPL
[Deprecated] Typescript-version of the IN3 client.

Programming Languages

typescript
32286 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to in3-legacy

gini
A fast SAT solver
Stars: ✭ 139 (+101.45%)
Mutual labels:  verification
Milvasoft.Iyzipay
Iyzico client for .Net 6
Stars: ✭ 15 (-78.26%)
Mutual labels:  client-library
vericert
A formally verified high-level synthesis tool based on CompCert and written in Coq.
Stars: ✭ 63 (-8.7%)
Mutual labels:  verification
goql
A GraphQL client package written in Go.
Stars: ✭ 17 (-75.36%)
Mutual labels:  client-library
node-identif
🔑 Helper class to verify one's identity via personal channels(SMS, Phone, E-Mail and more!)
Stars: ✭ 27 (-60.87%)
Mutual labels:  verification
vigor
Main repository of the Vigor NF verification project.
Stars: ✭ 40 (-42.03%)
Mutual labels:  verification
proofable-image
Build trust into your image by creating a blockchain certificate for it
Stars: ✭ 17 (-75.36%)
Mutual labels:  verification
c
Official C client library for Kubernetes
Stars: ✭ 83 (+20.29%)
Mutual labels:  client-library
pact-provider-verifier
Cross-platform, generic language, Pact provider verification tool
Stars: ✭ 27 (-60.87%)
Mutual labels:  verification
agollo
🚀Go client for ctrip/apollo (https://github.com/apolloconfig/apollo)
Stars: ✭ 563 (+715.94%)
Mutual labels:  client-library
node-meraki-dashboard
A modern node.js client library for using the Meraki Dashboard API.
Stars: ✭ 20 (-71.01%)
Mutual labels:  client-library
braze-php-sdk
A PHP client to interact with Braze API
Stars: ✭ 15 (-78.26%)
Mutual labels:  client-library
wal
WAL enables programmable waveform analysis.
Stars: ✭ 36 (-47.83%)
Mutual labels:  verification
netdice
A scalable and accurate probabilistic network configuration analyzer verifying network properties in the face of random failures.
Stars: ✭ 28 (-59.42%)
Mutual labels:  verification
SyReNN
SyReNN: Symbolic Representations for Neural Networks
Stars: ✭ 35 (-49.28%)
Mutual labels:  verification
node-email-verifier
The best possible way to verify and validate an email address.
Stars: ✭ 38 (-44.93%)
Mutual labels:  verification
libvata
VATA Tree Automata Library
Stars: ✭ 23 (-66.67%)
Mutual labels:  verification
go-journal
Verified, concurrent, crash-safe transaction system
Stars: ✭ 28 (-59.42%)
Mutual labels:  verification
circles-core
Common methods to interact with the Circles ecosystem
Stars: ✭ 22 (-68.12%)
Mutual labels:  client-library
VerificationCodeBox
验证码 && 密码 校验View(类似于支付宝、网商银行等密码校验框)
Stars: ✭ 25 (-63.77%)
Mutual labels:  verification

Incubed Client

Forks Stars License: AGPL v3

The Incubed client is a

  • Crypto-Economic
  • Non-syncronizing and stateless, but fully verifying
  • Minimal resource consuming

blockchain client (Crypto-Economic Client, Minimal Verification Client, Ultra Light Client).

Most blockchains, such as Ethereum, require a client to connect to their blockchain network. Often, these clients require a lot of storage, a very high bandwidth or constant computation. While this is possible to perform on laptops or desktop systems, mobile devices, mobile app, and even web applications struggle to meet these requirements. Currently the solution of choice is to use a light client or remote client on mobile devices. While this may work for mobile phones, most IoT devices are unable to run light clients. Connecting an IoT device to a remote node enables even low-performance IoT devices to be connected to blockchain. However, by using distinct remote nodes, the advantages of a decentralized network are undermined introducing a single point of failure. Also, it is unsecure because the client is not able to verify the results by itself. The same applies for mobile apps or web pages. The Trustless Incentivized Remote Node Network, in short Incubed, makes it possible to establish a decentralized and secure network of remote nodes and clients which are able to verify and validate the results, enabling trustworthy and fast access to blockchain for a large number of low-performance IoT, mobile devices, and web applications.

in3_image

A more detailed explanation of in3 can be found in the concept on readthedocs.

Platforms

Incubed can be used in different ways

Stack Size Code Base Use Case
TS/ JavaScript 2.7MB https://github.com/slockit/in3 WebApplication (decentralized RPC-Client in the Browser) or Mobile Applications
TS/ JS with WASM 330kB https://github.com/slockit/in3-c WebApplication (decentralized RPC-Client in the Browser) or Mobile Applications
C/C++ 200kB https://github.com/slockit/in3-c IoT-Devices, can be integrated nicely on many micro controllers (like [zephyr-supported boards] (https://docs.zephyrproject.org/latest/boards/index.html) ) or anny other C/C++ -Application
Java 705kB https://github.com/slockit/in3-c Java-Implementation of a native-wrapper
Docker 2.6MB https://github.com/slockit/in3 For replacing existing clients with this docker and connect to incubed via localhost:8545 without the need to change the architecture
bash 400kB https://github.com/slockit/in3-c the in3-commandline utils can be used directly as executable within bash-script or on the shell

other Languages (like C#, Python, Go, Rust) will be supported soon (until then you can simply use the shared library directly).

For information on the in3-node, sources on github or readthedocs will help you.

For information on the in3 client implementation in C, please go in3-c or API Documentation.

Installation and Usage

npm

Installing the in3-client is as easy as installing other modules:

npm install --save in3

Import incubed with:

import In3Client from "in3"

Example

// import in3-Module
import In3Client from 'in3'

async function demo() {

    // use the In3Client as Http-Provider
    const in3 = new In3Client({
        proof         : 'standard',
        signatureCount: 1,
        requestCount  : 2,
        chainId       : 'mainnet',
        replaceLatestBlock: 10
    })

    // use the web3
    const block = await in3.eth.getBlock('latest')
    console.log(`Incubed signed block hash ${block.hash}`)
}
...
}

Example with Web3 (as Provider)

// import in3-Module
import In3Client from 'in3'
import Web3 from 'web3'

async function demo() {

    // use the In3Client as Http-Provider
    const web3 = new Web3(new In3Client({
        proof         : 'standard',
        signatureCount: 1,
        requestCount  : 2,
        chainId       : 'mainnet',
        replaceLatestBlock: 10
    }).createWeb3Provider())

    // use the web3
    const block = await web3.eth.getBlock('latest')
    console.log(`Incubed signed block hash ${block.hash}`)
}
...
}

Detailed examples with usage of in3 in typescript programs can be found here.

Features

in3 Remote Client Light Client
Failsafe connection ✔️ ✔️
Automatic Nodelist updates ✔️ ✔️
Partial nodelist ✔️ ✔️
Multi-chain support ✔️ ✔️
Full verification of JSON-RPC methods ✔️
IPFS support ✔️ ✔️
Caching support ✔️
Proof-Levels ✔️
POA Support ✔️ ✔️ ✔️
Database setup size-minutes 0-instant️ 0-instant ~50Mb-minutes️
Uses IoT devices,Mobile,browser️ Mobile,browser️️ PC,Laptop️

Resources

Contributors welcome!

We at Slock.it believe in the power of the open source community. Feel free to open any issues you may come across, fork the repository and integrate in your own projects. You can reach us on various social media platforms for questions.

Twitter Blog Youtube LinkedIn Gitter

Got any questions?

Contact us on Gitter or send us an email at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].