Skip to content

Commit

Permalink
Merge #749: Docs: move wiki into the main repo to accept PRs on docs
Browse files Browse the repository at this point in the history
  • Loading branch information
semuxdev authored Mar 28, 2018
2 parents 14d7dff + 6e5da1a commit 1c07fd3
Show file tree
Hide file tree
Showing 9 changed files with 201 additions and 0 deletions.
24 changes: 24 additions & 0 deletions docs/Block-Rewards.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
### Total supply

The max supply of semux is capped at 100,000,000 SEM.

| Purpose | Amount | Note |
|---------------|----------------|------------------------------------------------------------|
| Block Rewards | 75,000,000 SEM | Distributed to Semux validators |
| Foundation | 10,000,000 SEM | Development, marketing, promotion and bounties |
| Community | 10,000,000 SEM | Alpha/beta/rc test, bitcointalk airdrop, BTC giveway, etc. |
| Founder | 5,000,000 SEM | Founder and core developers of Semux |

### Block reward

Semux are created each time a validator forges a new block.

```java
public static long getBlockReward(long number) {
if (number <= 25_000_000) {
return 3 * Unit.SEM;
} else {
return 0;
}
}
```
5 changes: 5 additions & 0 deletions docs/Bug-Bounty-Program.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
* Submit issue tickets at https://github.com/semuxproject/semux/issues
* Please do not leave your semux address in the issue ticket. Instead, you're recommended to put your address on your profile bio.
* Only tickets labelled as `bug` are eligible for bug bounty. The reward is 100 ~ 100,000 SEM based on its severity and impact.
* We process bug bounty monthly. You can also contact [email protected], if you urgently need it.
* Thanks!
93 changes: 93 additions & 0 deletions docs/Configurations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
### General configuration

```
################################################################################
# #
# Copyright (c) 2017-2018 The Semux Developers #
# #
# Distributed under the MIT software license, see the accompanying file #
# LICENSE or https://opensource.org/licenses/mit-license.php #
# #
################################################################################
#================
# P2P
#================
# Declared ip address
p2p.declaredIp =
# Binding IP address and port
p2p.listenIp = 0.0.0.0
p2p.listenPort = 5161
# Seed nodes, IP addresses separated by comma
p2p.seedNodes =
#================
# Network
#================
# Max number of inbound connections
net.maxInboundConnections = 1024
# Max number of inbound connections from each unique IP address
net.maxInboundConnectionsPerIp = 5
# Max number of outbound connections
net.maxOutboundConnections = 128
# Max message queue size
net.maxMessageQueueSize = 4096
# Message relay redundancy
net.relayRedundancy = 16
# Channel idle timeout, ms
net.channelIdleTimeout = 120000
# DNS Seed (comma delimited)
net.dnsSeeds.mainNet = mainnet.semux.org,mainnet.semux.net
net.dnsSeeds.testNet = testnet.semux.org
#================
# API
#================
# Be sure to set up authentication first before enabling API
api.enabled = false
# Listening address and port
api.listenIp = 127.0.0.1
api.listenPort = 5171
# Basic authentication
api.username = YOUR_API_USERNAME
api.password = YOUR_API_PASSWORD
#================
# UI
#================
# Specify the localization of UI
# ui.locale = en_US
# Specify the unit & fraction digits of values
# ui.unit must be one of SEM, mSEM, μSEM
ui.unit = SEM
ui.fractionDigits = 9
```

### IP whitelist and blacklist

Example:
```
{
"rules": [
{"type": "ACCEPT", "address": "127.0.0.1/8"},
{"type": "ACCEPT", "address": "192.168.0.0/16"},
{"type": "REJECT", "address": "8.8.8.8"}
]
}
```
47 changes: 47 additions & 0 deletions docs/Delegates-and-Validators.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
### What is a delegate

**Delegates** are special accounts on the **Semux BFT** consensus. Delegates are accounts that are available for voting and could become a validator. To register as a delegate you need to have `1000 SEMs` + transaction fee.

### How to register as a delegate

**To become a delegate**
1. Make sure you have enough balance (1000 SEMs + transaction fee);
2. Click on the `Delegates` tab;
3. In the middle right side you can see a bar **below** `Unvote`;
4. Type the **name** you want your delegate to appear;
5. Click `Register as delegate`.

### What is validator

**Validators** are delegates who are allowed to forge/mine blocks and validate transaction for the BFT Protocol. To become a `Validator`, a `Delegate` need to have enough number of votes to make it to the `Top 100` of the list. **Validators** are indicated with the **V** symbol compared to **S** symbol for other delegates.

### How to become a validator

**To become a validator**
1. Make sure to register as delegate
2. Vote for your own delegate
1. Click on the `Delegates` tab;
2. On the right side type the number of votes you want to put for your delegate;
3. Click on your delegate;
4. Click Vote (note: votes will remain locked until you `unvote`).
3. Wait for others to vote for your own delegate

### Number of validators

At the start of the network there will be **16 validators slots**. The `Top 16 validators` with the most number of votes will automatically become validators. Delegates can add more votes to remain in the `Top 16`. The number of validators will increment by **1 every 2 hours** until the **maximum of 100 validators** is reached.

### Recommended validator setup

Validator needs to be backed by a powerful computer.

**Minimum Setup**
* 8GB Memory
* Dual Core CPU
* 100 Mbps Bandwidth

**Recommended Setup**
* 16GB Memory
* Quad Core CPU
* 200 Mbps Bandwidth

Note: bandwidth requirements are for both inbound and outbound traffic.
10 changes: 10 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Welcome to the semux wiki!

* [Block Rewards](./Block-Rewards.md)
* [Bug Bounty Program](./Bug-Bounty-Program.md)
* [Configurations](./Configurations.md)
* [Delegates and Validators](./Delegates-and-Validators.md)
* [RESTful API](./RESTful-API.md)
* [Semux BFT Consensus](./Semux-BFT-Consensus.md)
* [Semux Virtual Machine](./Semux-Virtual-Machine.md)
* [Testnet](./Testnet.md)
1 change: 1 addition & 0 deletions docs/RESTful-API.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Semux API reference is now hosted at https://www.semux.org/assets/semux/api/v1.0.1/
9 changes: 9 additions & 0 deletions docs/Semux-BFT-Consensus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### What is BFT

In fault-tolerant computer systems, and in particular distributed computing systems, Byzantine fault tolerance (BFT) is the characteristic of a system that tolerates the class of failures known as the Byzantine Generals' Problem.

### What is Semux BFT

### Why BFT consensus is preferred

### Semux BFT sepecifications
1 change: 1 addition & 0 deletions docs/Semux-Virtual-Machine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TBA
11 changes: 11 additions & 0 deletions docs/Testnet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
### How to connect Semux Testnet

You can connect to the testnet via the following command
```
./semux-gui.sh --network testnet
```

### Resources

* Testnet faucet: https://www.semux.org/testnetfaucet
* Testnet explorer: https://testnet.semux.info/

0 comments on commit 1c07fd3

Please sign in to comment.