Skip to content

Commit

Permalink
Merge pull request #487 from steemit/sneak/documentationupdate
Browse files Browse the repository at this point in the history
refactored documentation
  • Loading branch information
Michael Vandeberg committed Oct 13, 2016
2 parents bc37c75 + 6b9573a commit f786147
Show file tree
Hide file tree
Showing 8 changed files with 333 additions and 242 deletions.
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,8 @@ RUN mkdir -p /etc/service/steemd
ADD contrib/steemd.run /etc/service/steemd/run
RUN chmod +x /etc/service/steemd/run

# add seednodes from documentation to image
ADD doc/seednodes.txt /etc/steemd/seednodes.txt

# the following adds lots of logging info to stdout
ADD contrib/config-for-docker.ini /etc/steemd/config.ini
147 changes: 48 additions & 99 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,137 +1,86 @@
Introducing Steem (beta)
-----------------
# Introducing Steem (beta)

Steem is an experimental Proof of Work blockchain with an unproven consensus
algorithm.

- Currency Symbol STEEM
- Currency symbol STEEM
- 1.000 STEEM block reward at launch
- Approximately 100% APR long term inflation rate

Public Announcement & Discussion
--------------------------------
# Public Announcement & Discussion

Steem was announced on [Bitcointalk](https://bitcointalk.org/index.php?topic=1410943.new) prior to the start of any mining.
Steem was announced on the
[Bitcointalk forum](https://bitcointalk.org/index.php?topic=1410943.new) prior to
the start of any mining.

# No Support & No Warranty

No Support & No Warranty
------------------------
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

Code is Documentation
---------------------
# Code is Documentation

Rather than attempt to describe the rules of the blockchain, it is up to
each individual to inspect the code to understand the consensus rules.

Seed Nodes
----------

xeldal 45.55.217.111:12150 (USA)
ihashfury 104.168.154.160:40696
lafona 52.4.250.181:39705
steempty 109.74.206.93:2001 steem.clawmap.com (UK)
steem-id 45.114.118.146:2001 (Indonesia)
cyrano.witness 81.89.101.133:2001 (Jena, Germany)
kushed 40.76.37.6:2001 steem.kushed.com (Azure)
nextgencrypto 104.207.152.44:2201 steemwitness.com (Los Angeles, USA)
pharesim 78.46.32.4 steemd.pharesim.me (Falkenstein, German)
liondani 212.117.213.186:2016 (Switzerland)
someguy123 199.241.186.130:2001 steemit-seed.someguy123.com:2001
smooth.witness 52.74.152.79:2001

52.38.66.234:2001
52.37.169.52:2001
52.26.78.244:2001
192.99.4.226:2001
46.252.27.1:1337
81.89.101.133:2001
52.4.250.181:39705
steemd.pharesim.me:2001
seed.steemed.net:2001
steem.clawmap.com:2001
seed.steemwitness.com:2001
steem-seed1.abit-more.com:2001


How to Mine
-----------

The mining algorithm used by Steem requires the owner to have access to the private key
used by the account. This means it does not favor mining pools.

./steemd --miner=["accountname","${WIFPRIVATEKEY}"] --witness="accountname" --seed-node="52.38.66.234:2001"

Make sure that your accountname is unique and not already used by someone else or your proof of work
might not be accepted by the blockchain.
# Quickstart

OS-specific build instructions
------------------------------
Just want to get up and running quickly? Try deploying a prebuilt
dockerized container. Both common binary types are included.

See [here](doc/build-ubuntu.md) for Linux and [here](doc/build-osx.md) for OSX (Apple).
## Dockerized p2p Node

cmake Build Options
--------------------------
To run a p2p node (ca. 2GB of memory is required at the moment):

### CMAKE_BUILD_TYPE=[Release/Debug]
docker run \
-d -p 2001:2001 -p 8090:8090 --name steemd-default \
steemit/steem

Specifies whether to build with or without optimization and without or with the symbol table for debugging. Unless you are specifically
debugging or running tests, it is recommended to build as release.
docker logs -f steemd-default # follow along

### LOW_MEMORY_NODE=[OFF/ON]
## Dockerized Full Node

Builds steemd to be a consensus only low memory node. Data and fields not needed for consensus are not stored in the object database.
This option is recommended for witnesses and seed-nodes.
To run a node with *all* the data (e.g. for supporting a content website)
that uses ca. 14GB of memory and growing:

### ENABLE_CONTENT_PATCHING=[ON/OFF]
docker run \
--env USE_WAY_TOO_MUCH_RAM=1 \
-d -p 2001:2001 -p 8090:8090 --name steemd-full \
steemit/steem

Allows content to be updated using a patch rather than a complete replacement.
If you do not need an API server or need to see the result of patching content then you can set this to OFF.
docker logs -f steemd-full

### CLEAR_VOTES=[ON/OFF]
# Seed Nodes

Clears old votes from memory that are not longer required for consensus.
A list of some seed nodes to get you started can be found in
[doc/seednodes.txt](doc/seednodes.txt).

### BUILD_STEEM_TESTNET=[OFF/ON]
This same file is baked into the docker images and can be overridden by
setting `STEEMD_SEED_NODES` in the container environment at `docker run`
time to a whitespace delimited list of seed nodes (with port).

Builds steemd for use in a private testnet. Also required for correctly building unit tests
# How to Mine

Testing
-------
The mining algorithm used by Steem requires the owner to have access to the
private key used by the account. This means it does not favor mining pools.

The unit test target is `make chain_test`
This creates an executable `./tests/chain_test` that will run all unit tests.
./steemd --miner=["accountname","${WIFPRIVATEKEY}"] \
--witness="accountname" --seed-node="52.38.66.234:2001"

Tests are broken in several categories:
```
basic_tests // Tests of "basic" functionality
block_tests // Tests of the block chain
live_tests // Tests on live chain data (currently only past hardfork testing)
operation_tests // Unit Tests of Steem operations
operation_time_tests // Tests of Steem operations that include a time based component (ex. vesting withdrawals)
serialization_tests // Tests related of serialization
```
Make sure that your accountname is unique and not already used by someone
else or your proof of work might not be accepted by the blockchain.

Code Coverage Testing
---------------------
# Building

If you have not done so, install lcov `brew install lcov`
See [doc/building.md](doc/building.md) for detailed build instructions, including
compile-time options, and specific commands for Linux (Ubuntu LTS) or macOS X.

```
cmake -D BUILD_STEEM_TESTNET=ON -D ENABLE_COVERAGE_TESTING=true -D CMAKE_BUILD_TYPE=Debug .
make
lcov --capture --initial --directory . --output-file base.info --no-external
tests/chain_test
lcov --capture --directory . --output-file test.info --no-external
lcov --add-tracefile base.info --add-tracefile test.info --output-file total.info
lcov -o interesting.info -r total.info tests/\*
mkdir -p lcov
genhtml interesting.info --output-directory lcov --prefix `pwd`
```
# Testing

Now open `lcov/index.html` in a browser
See [doc/testing.md](doc/testing.md) for test build targets and info
on how to use lcov to check code test coverage.
17 changes: 3 additions & 14 deletions contrib/steemd.run
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,9 @@ fi

chown -R steemd:steemd $HOME

SEED_NODES="
52.38.66.234:2001
52.37.169.52:2001
52.26.78.244:2001
192.99.4.226:2001
46.252.27.1:1337
81.89.101.133:2001
52.4.250.181:39705
steemd.pharesim.me:2001
seed.steemed.net:2001
steem.clawmap.com:2001
seed.steemwitness.com:2001
steem-seed1.abit-more.com:2001
"
# seed nodes come from doc/seednodes.txt which is
# installed by docker into /etc/steemd/seednodes.txt
SEED_NODES="$(cat /etc/steemd/seednodes.txt | awk -F' ' '{print $1}')"

ARGS=""

Expand Down
64 changes: 0 additions & 64 deletions doc/build-osx.md

This file was deleted.

65 changes: 0 additions & 65 deletions doc/build-ubuntu.md

This file was deleted.

Loading

0 comments on commit f786147

Please sign in to comment.