Skip to content

utnet-org/utility





Build Stable Status Prerelease Status codecov Discord chat Telegram Group

Table of Contents

About Utility

Utility's mission is to stimulate community-led innovation for the benefit of people worldwide.

To realize this mission, Utility provides a platform where developers and entrepreneurs can build applications that put users back in control of their data and assets. This is a core tenet of the ["Open Web" movement][open-web-url].

A key component of utnet is utility, a blockchain-powered unc-infra.tructure for serverless applications and smart contracts. Utility aims to offer the ease-of-use and scalability of modern PaaS like Firebase, but at a fraction of the cost of blockchains like Ethereum.

Installation

The easiest way to join the network, is by using the make release command or download release binaries, which you can install as follows:

# testnet node init directly use binaries
unc-node --home ~/.unc  init --chain-id testnet --download-genesis --download-config

# download snapshot data (optional)
## install rclone 1.66.0 or beyond
```sh
# Mac 
$ brew install rclone

# Linux
$ sudo apt install rclone

$ mkdir -p ~/.config/rclone
$ touch ~/.config/rclone/rclone.conf

## rclone config
[unc_cf]
type = s3
provider = Cloudflare
endpoint= https://ec9b597fa02615ca6a0e62b7ff35d0cc.r2.cloudflarestorage.com
access_key_id = 2ff213c3730df215a7cc56e28914092e
secret_access_key = b28609e3869b43339c1267b59cf25aa5deff4097737d3848e1491e0729c3ff6c
acl = public-read

## download data 
$ rclone copy --no-check-certificate unc_cf:unc/latest ./
$ latest=$(cat latest)
$ rclone copy --no-check-certificate --progress --transfers=6  unc_cf:unc/${latest:?}.tar.gz /tmp

## un archive snapshot
tar -zxvf /tmp/${latest:?}.tar.gz -C /tmp  && mv /tmp/${latest:?}/data ~/.unc

## on ~/.unc dir touch file `validator_key.json`  (optional)
{
    "account_id": "miner-addr"
    "public_key":"ed25519:2yMvZrTtjgFMtcpE12G3tdt7KsYKdKE6jufRnz4Yyxw3",
    "private_key":"ed25519:3NVx4sHxBJciEH2wZoMig8YiMx1Q84Ur2RWTd2GQ7JNfWdyDxwwYrUR6XtJR3YcYeWh9NzVEmsnYe2keB97mVExZ"
}

# node run
$ unc-node --home ~/.unc  run

To learn how to become validator, checkout documentation.

Directory Structure

├── chain: Consensus chain interaction utilities.
│ ├── bindings: block chain validate and rocksdb column.
│ ├── src: peer node bootstrap.
│ └── network: libp2p network discover.
├── docs: Documentation resources, including images and diagrams.
├── core: Components for utility primitives.
│ ├── crypto: Crypto libs rsa2048, secp256k1.
│ ├── primitives: Chain relatives base data structure.
│ └── store: rocksdb store data structure.
├── infra: The Utility instance, including application logic and attestation mechanisms.
│ ├── infra: Node initialize for Utility.
│ └── test: Command-line tools and utilities.
├── runtime: Core libraries for various protocol functionalities.
│ ├── runtime: Chain state apply, contracts executor.
│ └── runner: Rust bindings for smart contracts.
├── node: Node service for chain messages and transactions.
│ └── node: Application logic for the node service.
├── scripts: Utility scripts for development and operational tasks.
└── test: Testing suite for end-to-end, smoke, and utility testing.

Contributing

For detailed instructions on how to contribute, including our coding standards, testing practices, and how to submit pull requests, please see the contribution guidelines

Security

Please refer to SECURITY.md.