Skip to content
SKALED is SKALE Ethereum-compatible, high performance C++ Proof-of-Stake client, tools and libraries. Uses SKALE consensus as a blockchain consensus core. Implements file storage and retrieval as an EVM extension.
C++ C HTML Shell JavaScript CMake Other
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
SkaleDeps
cmake
evmc @ 7ecb310
evmjit @ bb7f6c1
libconsensus @ be29cfc
libdevcore
libdevcrypto
libethashseal
libethcore
libethereum
libevm
libp2p
libskale-interpreter
libskale
libskutils
libweb3jsonrpc
rlp
scripts
skale-key
skale-vm
skaled
storage_benchmark
test
utils/json_spirit
.clang-format
.editorconfig
.gitignore
.gitmodules
.travis.yml
CHANGELOG.md
CMakeLists.txt
CODEOWNERS
CODING_STYLE.md
LICENSE
README.md
VERSION
codecov.yml
sanitizer-blacklist.txt
tsan_suppressions.txt

README.md




SKALED – SKALE C++ Client

Discord

Skaled is SKALE Proof-Of-Stake blockchain client, compatible with ETH ecocystem, including EVM, Solidity, Metamask and Truffle. It uses SKALE BFT Consensus engine. It is currently actively developed and maintained by SKALE Labs, and intended to be used for SKALE chains (elastic sidechains).

Forklessness

Skaled is forkless, meaning that blockchain a linear chain (and not a tree of forks as with ETH 1.0). Every block is provably finalized within finite time.

Asynchronous block production

Skaled is asynchronous, meaning that the consensus on the next block starts immediately after the previous block is finalized. There is no set block time interval. This allows for subsecond block production in case of a fast network, enabling interactive Dapps.

Provable security

Skaled is the only provably secure ETH compatible PoS client. Security is proven under assumption of maximum t malicious nodes, where the total number of nodes N is more or equal 3t + 1.

Survivability

The network is assumed to bef fully asynchronous meaning that there is no upper limit for the packet delivery time. In case of a temporarily network split, the protocol can wait indefinitely long until the split is resolved and then resume normal block production.

Historic origins

Historically skaled started by forking Aleth (formerly known as the cpp-ethereum project). We are thankful to the original cpp-ethereum team for their contributions.

Building from source

OS requirements

Skaled builds and runs on Ubuntu 16.04 and 18.04

Clone repository

git clone --recurse-submodules https://github.com/skalenetwork/skaled.git
cd skaled

⚠️ Note: Because this repository depends on additional submodules, it is important to pass--recurse-submodules to the git clone command.

If you have already cloned the repo and forgot to pass --recurse-submodules, execute git submodule update --init --recursive

Install required Ubuntu packages

sudo apt-get update
sudo apt-get install autoconf build-essential cmake libprocps-dev libtool texinfo wget yasm flex bison

Build dependencies

cd SkaleDeps
./build.sh

Configure and build skaled

# Configure the project and create a build directory.
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Debug
# Build all default targets using all cores.
cmake --build build -- -j$(nproc)

Note: Currently only Debug build is supported.

Testing

To run the tests:

cd build/test
./testeth -- --all

Documentation

in process

Contributing

We are actively looking for contributors and have great bounties!

Please read CONTRIBUTING and CODING_STYLE thoroughly before making alterations to the code base. This project adheres to SKALE's code of conduct. By participating, you are expected to uphold this code.

We use GitHub issues for tracking requests and bugs, so please see our general development questions and discussion on Discord.

All contributions are welcome! We try to keep a list of tasks that are suitable for newcomers under the tag help wanted. If you have any questions, please just ask.

Discord

All development goes in develop branch.

Note on mining

The SKALE Network uses Proof-of-Stake, therefore this project is not suitable for Ethereum mining.

For more information

Learn more about the SKALE community over on Discord.

License

License

All contributions are made under the GNU General Public License v3. See LICENSE.

All original cpp-ethereum code Copyright (C) Aleth Authors.
All cpp-ethereum modifications Copyright (C) SKALE Labs.
All skaled code Copyright (C) SKALE Labs.

You can’t perform that action at this time.