# Main README file
*_Click image for Explainer Video_*
<div align="center">
<a href="https://youtu.be/Twe_hPFGlbY">
<img src="https://img.youtube.com/vi/Twe_hPFGlbY/maxresdefault.jpg">
</a>
</div>
[](https://discord.gg/mtAy3cv)
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [What is SKALE](#what-is-skale)
- [SKALE'S Mission](#skales-mission)
- [SKALE Demos](#skale-demos)
- [Getting Started with SKALE](#getting-started-with-skale)
- [Architecture](#architecture)
- [Sidechains(S-chains)](#sidechainss-chains)
- [Validator Nodes](#validator-nodes)
- [Docker Containers](#docker-containers)
- [SKALE Manager](#skale-manager)
- [SKALE-d](#skale-d)
- [Additional Features](#additional-features)
- [Contributing](#contributing)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## What is SKALE
SKALE is a decentralized proof-of-stake network of high-throughput low-latency elastic sidechains that run in parallel with the Ethereum blockchain. SKALE enables you to run your dApp with a better user experience without security tradeoffs.
## SKALE'S Mission
Our mission is to empower dApps. We believe in a decentralized world where value accrues more equitably and we are building infrastructure to support a thriving dApp ecosystem.
## SKALE Demos
We have built several [demo dApps](https://github.com/skalenetwork/skale-demo) that run on Skale. We encourage you to play around with them and get a feel for file structure and code samples.
Please note that we are actively updating these demos so some of them may not work as expected.
## Getting Started with SKALE
We want to make it easy to get started using SKALE which is why we support Truffle and your favorite Web3 wallets.
We are working on a CLI tool for developers to request a SKALE chain, but until then we have an interim process in place.
- If you are a developer, [click here](https://skale.network/docs/developers/integrations) to learn how to migrate and deploy your smart contracts to the SKALE chain
- If you are a validator, [click here](https://github.com/skalenetwork/skale-node-cli) to learn how to set-up a SKALE node
**NOTE: To be updated after D1 finishes his updates to node-cli instructions**
## Architecture
The SKALE network is comprised of sidechains(s-chains), validator nodes, the Skale Manager, and the Skale daemon (Skale-d). All nodes operate in a containerized architecture to enable enterprise grade performance and optionality.
### SKALEchain
A S-chain is simply a blockchain that exists alongside the Ethereum mainnet and runs inside of a Docker container. S-chains are elastic because they come in different sizes depending on the needs of the dApp. S-chains operate within a daemon named SKALED.
### Validator Nodes
The SKALE network is secured by a group of independent validators. These operators can run one or multiple nodes. Each validator node must stake SKALE tokens to participate in the network. Good behavior is incentivized through bounty rewards and bad behavior is disencentivized through slashing.
We will provide more information on validator economics before launching the Incentivized DevNet. If you'd like to participate in the Incentivized DevNet, please fill out [this form](https://skale.network/validators-signup)
### Docker Containers
A validator node consists of the following 4 required Docker containers:
- MySQL
- SLA
- BountySKALE Admin
- Skale Admin
The following 2 docker containers are optional:
- Skale-D
- IMA
*SLA and bounty are part of node monitoring service. They work together to monitor other nodes for node performance
If a validator node is randomly selected to participate in a S-chain, the following Docker containers are instantiated:
- Interchain Messaging (IMA)
- S-chain
You can read more about the Docker containers we use in our [developer portal](https://skale.network/validators/skale-node#list-of-skale-containers)
### SKALE Manager
SKALE Manager is a series of smart contracts on the Ethereum mainnet. These smart contracts orchestrate the Skale network. Skale Manager is responsible for the following activities:
- node registration
- node operation
- bounty rewards for validators
- S-chain creation
- S-chain destruction
### SKALE-d
Each node runs SKALE-d, or Skale-daemon, which is fully compatible with Ethereum. It is a fork of Aleth, Ethereum's C++ client (shout out and thank you to the Aleth team). SKALE-d uses an improved consensus mechanism and libBLS to enable higher through-put and lower-latency. You can read more about SKALE's consensus and libBLS in our [developer portal](https://skale.network/docs/)
## Additional Features
We have modified the EVM to allow for much larger file storage capabilities. Additionally, we have built a mechanism for relaying and executing messages between sidechains.
- File Storage
- Interchain Messaging (IMA)
## Contributing
We would love to get code contributions from our community and are grateful for even the smallest contibutions.
*Note for Chadwick: I think we remove this for now because we're not ready for contributions. Instead, I suggest we say: "We greatly value security and our code is currently under audit. All community contributions are temporarily disabled until the audit is complete and remediations are made.
We will however be working with Gitcoin and HackerOne on bug bounties. This will be a great way to get our community's eyes on on our code! We would love for you to help! More details coming soon.