bloock

package module
v2.8.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2024 License: MIT Imports: 2 Imported by: 0

README

Bloock SDKs

Release npm PyPI Maven Packagist GoDoc

BLOOCK guarantees data integrity and authenticity in a simple, scalable, and confidential manner on top of distributed ledger technologies. Through BLOOCK, enterprises can minimize the principal risks and difficulties faced when defining, developing and managing a blockchain project.

  • Easy to use
  • Highly scalable
  • Privacy by default
  • Technologically independent
  • Network interoperability
  • Predictable efficient cost

We want your feedback! Please feel free to open a GitHub issue for suggested improvements or feature requests. If you need support, contact support@bloock.com.

Getting started

  • For a guide about how to set up one of our SDKs, visit Set up.
  • Check our full documentation at docs.bloock.com.

Support

If you need help, you can join our Discord server where our engineering team will be happy to help you:

Join Discord

Language support

Language Requirements Source Link Support
Javascript Node: >=12.20.0
NPM: >=6.4.1
Source JS Link JS
Go 1.18+ Source Go Link Go
Python Python: >= 3.7
PIP
Source Python Link Python
Java Java: >= 8
Gradle or Maven
Source Java Link Java
PHP PHP: >= 7.4
ext-ffi
Source PHP Link PHP
Rust - - - 🔜

OS support

OS Arch Env type Support
Linux x86_64 gnu
Linux x86_64 musl
Linux arm64 gnu -
Linux arm64 musl -
Windows x86_32 mingw -
Windows x86_32 msvc -
Windows x86_64 mingw
Windows x86_64 msvc
MacOS x86_64 -
MacOS arm64 -

Concept

BLOOCK offers direct integrations with multiple programming languages (see Language support. In order to mantain a unified user experience and equivalent functionalities, we implement all functionalities in Rust (stable) and bridge each one to every language-specific SDK trough FFI.

Architecture

To achieve interoperability between different programming languages, we use an architecture that has the following elements:

Architecture

  • Bloock Libs: Contain specific utilities used accross different features. Such as: hashing algorithms, digital signature algorithms, encrytption algorigthms, HTTP communication, ...
  • Bloock Core: Contains all the bussiness logic for every feature.
  • Bloock Bridge: Implements the GRPC-like endpoints and connects them with the features implemented in the Core.
  • Language-specific libraries: Contains all the interfaces for the consumer and connects with the bridge using the different endpoints available.
Communication

The communication between different languages is done by using a language-specific interoperability layer and a generic transport layer.

Interoperability

Most languages have some type of ability to communicate with another language, this is called FFI (Foreign Function Interface) and usually is done by using C as a base language. One of the exceptions is Javascript because browsers don't support that functionality and it's only possible to do so by using WebAssembly.

To support this two cases, we chose Rust as a Core programming language because is able to compile to C and WebAssembly.

Interoperability

Finally, to give full support, we generate C builds for different OS and architectures. See OS support.

Transport

In order to minimize the effort dedicated to interact with the FFI layer which, specially in C, is time consuming we use Protocol Buffers and a modified GRPC protocol in such a way that we define in-memory endpoints that are called by the language-specific SDKs (client) and served by the Rust Bridge (server).

Transport

License

See LICENSE.

Documentation

Overview

Package bloock provides a centralized configuration for the Bloock SDK library.

For information about Bloock SDK in Go, see https://bloock.com.

Index

Constants

This section is empty.

Variables

View Source
var ApiHost string

ApiHost is a string variable representing the host URL used for API communication with the Bloock SDK.

View Source
var ApiKey string

ApiKey is a string variable representing the API key used for authentication with the Bloock SDK. Create one [here]. [here]: https://dashboard.bloock.com/login

View Source
var IdentityApiHost string = ""

IdentityApiHost is a string variable representing the host URL used for Identity Managed API. Required to be set for identity-related features of the Bloock SDK.

NetworkConfig is a map variable that holds network configurations associated with specific network IDs in the Bloock SDK.

Functions

func SetContractAddress added in v2.8.2

func SetContractAddress(network integrity.Network, contractAddress string)

SetContractAddress sets the contract address for the specified network in the Bloock SDK configuration.

func SetProvider added in v2.5.0

func SetProvider(network integrity.Network, provider string)

SetProvider sets the HTTP provider for the specified network in the Bloock SDK configuration.

Types

This section is empty.

Directories

Path Synopsis
Package client provides a client for interacting with the Bloock SDK.
Package client provides a client for interacting with the Bloock SDK.
entity
key
internal
ffi

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL