create account

Building a high availability steemd node for web apis by jesta

View this thread on: hive.blogpeakd.comecency.com
· @jesta · (edited)
$406.29
Building a high availability steemd node for web apis
If you're interested in building a steemd node for use with a web application, this is meant to serve as your guide. I will attempt to repost this guide occasionally with updates as requirements/steps change (since editing doesn't work past 12 hrs).

# Running a load balanced steemd node for the web apis

Running a node for the web is slightly different than a node you'd use for mining or as a witness. We need all of the features available through the API to serve out every piece of information possible. Many mining/witness nodes turn most of these options off to reduce load on the server.

For a web node, we want all of these enabled! The plugins this guide will enable are as follows:

- `database_api`
- `login_api`
- `market_history_api`
- `tags_api`
- `follow_api`
- `network_broadcast_api`(thanks for the tip @rainman)

In the end, your nodes will run as a load balanced websocket server on port 80 (or 443 if you install a ssl cert, not covered here). Both steemstats and piston's API's follow these conventions.

### Current hardware requirements:

As of 8/8, the hardware requirements are as follows. I will attempt to recreate this post with best practices over the coming months as requirements increase.

**Dual web node**:

- 4 vCPU
- 16gb RAM (may exceed this soon)
- Lots of bandwidth to spare (my node uses between 4mb-25mb+ a second)

If you choose to run just a single node, you can effectively cut those requirements in half.

### Assumptions

1. You have a linux server
2. The linux os is already installed
3. You have remote access to the server
4. You have permissions to install software (you may need to add sudo to some of these commands)
5. You have a basic understanding of system administration

### Building steemd, twice.

This configuration runs two instances of steemd for load balancing and failover purposes. If one of the nodes goes down, the other node should still be available to take requests. This will only build the `steemd` application (thanks to @rainman for the tip here).

> If you're interested in compiling the code faster, replace the `4` in `-j4` with the number of vCPUs your machine has.

Building node #1

```
cd ~
git clone https://github.com/steemit/steem.git steem1
cd steem1
git submodule update --init --recursive
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
make -j4 steemd
```

Building node #2

```
cd ~
git clone https://github.com/steemit/steem.git steem2
cd steem2
git submodule update --init --recursive
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
make -j4 steemd
```

### Configuring steemd

Before we start running anything, we need to configure our two steemd nodes. Listed below are two configuration examples, one for each node, where the only difference is the `rpc-endpoint` port number.

---

**steemd node #1**

`~/steem1/programs/steemd/witness_node_data_dir/config.ini`

```
rpc-endpoint = 127.0.0.1:5090

seed-node=52.38.66.234:2001
seed-node=52.37.169.52:2001
seed-node=52.26.78.244:2001
seed-node=192.99.4.226:2001
seed-node=46.252.27.1:1337
seed-node=81.89.101.133:2001
seed-node=52.4.250.181:39705
seed-node=85.214.65.220:2001
seed-node=104.199.157.70:2001
seed-node=104.236.82.250:2001
seed-node=104.168.154.160:40696
seed-node=162.213.199.171:34191
seed-node=seed.steemed.net:2001
seed-node=steem.clawmap.com:2001
seed-node=seed.steemwitness.com:2001
seed-node=steem-seed1.abit-more.com:2001

enable-plugin = account_history
enable-plugin = follow
enable-plugin = market_history
enable-plugin = private_message
enable-plugin = tags

public-api = database_api login_api market_history_api tags_api follow_api
```

---

**steemd node #2**

`~/steem2/programs/steemd/witness_node_data_dir/config.ini`

```
rpc-endpoint = 127.0.0.1:5091

seed-node=52.38.66.234:2001
seed-node=52.37.169.52:2001
seed-node=52.26.78.244:2001
seed-node=192.99.4.226:2001
seed-node=46.252.27.1:1337
seed-node=81.89.101.133:2001
seed-node=52.4.250.181:39705
seed-node=85.214.65.220:2001
seed-node=104.199.157.70:2001
seed-node=104.236.82.250:2001
seed-node=104.168.154.160:40696
seed-node=162.213.199.171:34191
seed-node=seed.steemed.net:2001
seed-node=steem.clawmap.com:2001
seed-node=seed.steemwitness.com:2001
seed-node=steem-seed1.abit-more.com:2001

enable-plugin = account_history
enable-plugin = follow
enable-plugin = market_history
enable-plugin = private_message
enable-plugin = tags

public-api = database_api login_api market_history_api tags_api follow_api
```

### Downloading a snapshot of the blockchain

[@fydel offers up a snapshot of the blockchain](https://steemit.com/steem/@fydel/blockchain-download) to help you get sync'd faster. You'll need to download this and place it in the appropriate folders to get started.

You need to do this for each individual node you are running, in both steem1 and steem2 folders.

### Automatically starting steemd on boot

It's important to ensure your node is running 24/7. If you're running ubuntu, [@steemed wrote a guide that helps you configure it with ubuntu](https://steemit.com/steemhelp/@steemed/use-ubuntu-upstart-for-steem-service).

You'll have to create two of these, one for each steem node you're setting up. I'd recommend naming them as follows:

- `/etc/init/steem1`
- `/etc/init/steem2`

Once you have the startup scripts created, `start steem1` and `start steem2` should start both of your nodes. If you'd like to monitor the progress of both nodes simultaneously, you can use:

`tail -f path/to/steem1/programs/steemd/debug.log -f path/to/steem2/programs/steemd/debug.log`

You will see the nodes replaying the blockchain and once they are ready, you will see lines like this appear:

```
2163510ms th_a       application.cpp:439           handle_block         ] Got 2 transactions from network on block 3913580
```

As more scripts for different distros are created, I'll start adding links to them here or in the next iteration of this guide.

### Configuring nginx as your load balancer

I won't go into installing nginx, as you should probably have a basic understanding of how to do this yourself. If you're looking for a package, [nginx provides a package for most popular distros](http://nginx.org/en/linux_packages.html).

What we will need though is to configure nginx a little bit. First up, the basic nginx configuration:

**nginx config:**

`/etc/nginx/nginx.conf`

```
events {
  worker_connections 768;
}

http {
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;

  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  gzip on;
  gzip_disable "msie6";

  limit_req_zone $binary_remote_addr zone=ws:10m rate=1r/s;

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}
```

Most of this should already exist in your nginx configuration, but note the `limit_req_zone` line towards the bottom. This is a measure to help prevent overloading your node by setting up some request throttling.

One more file needs to be added to finish off this configuration, the actual file inside of `/etc/nginx/sites-enabled`. If this server isn't going to be used for anything else, remove all of the default configurations from that folder and add the following:

**nginx vhost config:**

`/etc/nginx/sites-enabled/default.conf`

```
upstream websockets {
  server 127.0.0.1:5090;
  server 127.0.0.1:5091;
}

server {
    listen 80;
    server_name _;
    root /var/www/html/;

    keepalive_timeout 65;
    keepalive_requests 100000;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    location ~ ^(/|/ws) {
        limit_req zone=ws burst=5;
        access_log off;
        proxy_pass http://websockets;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500;
        proxy_connect_timeout 2;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}
```

Reload nginx with `service nginx reload` and your server should now be responding on port 80 with the steemd nodes you just created. If you load it with a web browser, or just `curl http://localhost` it should return:

```
11 eof_exception: End Of File
stringstream
    {}
    th_a  sstream.cpp:109 peek

    {"str":""}
    th_a  json.cpp:478 from_string
```

(which is totally ok, as your web browser isn't issuing the proper request)

### Congrats!

You're now running a fully featured web node that will return content, following information, tags, account history and plenty of other information! Go forth, build awesome things, and help make the steem community even greater! :)

### Something missing?

If you know of something that should be included in this guide, please let me know. I'm looking to help build a comprehensive guide so others can start hosting their own web APIs.
πŸ‘  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 160 others
properties (23)
authorjesta
permlinkbuilding-a-high-availability-steemd-node-for-web-apis
categorysteem
json_metadata{"tags":["steem","steemd","steem-server","guide","howto"],"links":["https://github.com/steemit/steem.git"],"users":["rainman"]}
created2016-08-08 21:52:36
last_update2016-08-08 22:20:00
depth0
children33
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value388.472 HBD
curator_payout_value17.823 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length9,019
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,312
net_rshares80,201,818,364,335
author_curate_reward""
vote details (224)
@aizensou ·
This is what we developer looking for. Many thanks to @jesta! It deserved thousand upvotes.
πŸ‘  
properties (23)
authoraizensou
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160809t101358456z
categorysteem
json_metadata{"tags":["steem"],"users":["jesta"]}
created2016-08-09 10:13:57
last_update2016-08-09 10:13:57
depth1
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length91
author_reputation31,620,973,634,639
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id700,710
net_rshares57,350,303
author_curate_reward""
vote details (1)
@alaynaspop ·
Simply Great Information and Presentation
properties (22)
authoralaynaspop
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160815t022227931z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-15 02:22:27
last_update2016-08-15 02:22:27
depth1
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length41
author_reputation-513,734,219,690
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id809,759
net_rshares0
@bitcoiner ·
$0.05
Thanks, @jesta! This will be helpful to all devs! Quick question - why clone the repo twice and build separately? Can we instead just build once and duplicate the whole folder, all built? This will save time on building.
πŸ‘  
properties (23)
authorbitcoiner
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t215819367z
categorysteem
json_metadata{"tags":["steem"],"users":["jesta"]}
created2016-08-08 21:58:21
last_update2016-08-08 21:58:21
depth1
children4
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.048 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length220
author_reputation28,017,014,641,958
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,429
net_rshares79,672,196,166
author_curate_reward""
vote details (1)
@jesta ·
You absolutely could (in fact I did that as well). I just wanted to outline a bullet proof way to make it work. I've had issues with the blockchain getting corrupted when I `cp -r` the whole folder to another location, and didn't want others to encounter the same problem :)
πŸ‘  
properties (23)
authorjesta
permlinkre-bitcoiner-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t220000878z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:00:00
last_update2016-08-08 22:00:00
depth2
children3
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length274
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,456
net_rshares0
author_curate_reward""
vote details (1)
@bitcoiner ·
Haha, maybe the config and make puts the absolute path into the artifacts? Anyway, love nginx and steemstats!! Thanks for all the hard work
properties (22)
authorbitcoiner
permlinkre-jesta-re-bitcoiner-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t220854504z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:08:57
last_update2016-08-08 22:08:57
depth3
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length139
author_reputation28,017,014,641,958
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,624
net_rshares0
@bitcoiner ·
What about taking a snapshot of the final VPS, then spawn a few instances of it and load balancing *those*? Then there'll be multiple nginx nodes, and the setup with have even higher availability!! =D  This way, there won't be a case of possible failure of nginx, otherwise that would be  the point of failure.
properties (22)
authorbitcoiner
permlinkre-jesta-re-bitcoiner-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t223422913z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:34:24
last_update2016-08-08 22:34:24
depth3
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length310
author_reputation28,017,014,641,958
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id692,050
net_rshares0
@boombastic ·
Why clone and build twice?  What I do is 

    mkdir steem1 steem2    
    git clone https://github.com/steemit/steem.git src 
    cd src && git submodule update --init --recursive
    cmake -DCMAKE_BUILD_TYPE=Release .
    make -j4 steemd
    cp programs/steemd/steemd ../steem1/
    cp programs/steemd/steemd ../steem2/

This should save some build time.
properties (22)
authorboombastic
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160809t192813688z
categorysteem
json_metadata{"tags":["steem"],"links":["https://github.com/steemit/steem.git"]}
created2016-08-09 19:28:15
last_update2016-08-09 19:28:15
depth1
children2
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length356
author_reputation3,736,161,083,342
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id709,548
net_rshares0
@jesta ·
I ran into issues with blockchain corruption and the dreaded:

`Starting chain with 0 blocks...`

I seem to get this error everytime I CP a `witness_data_node_dir` around. I didn't know how common that would be, so to avoid people saying "hey this broke" I decided to go the long route and just have people create it twice.

But - It's totally possible to do it this way, and it would save time. But if you run into errors like I did, just start over and compile from scratch ;)
properties (22)
authorjesta
permlinkre-boombastic-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160809t225046548z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-09 22:50:45
last_update2016-08-09 22:50:45
depth2
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length478
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id713,366
net_rshares0
@barrie ·
Yeah, that makes sense.  Thanks.
properties (22)
authorbarrie
permlinkre-jesta-re-boombastic-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160810t071416141z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-10 07:14:21
last_update2016-08-10 07:14:21
depth3
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length32
author_reputation261,787,136,527
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id720,217
net_rshares0
@ervin-lemark ·
You have my upvote every time, blind or not :)

OK, this time it is not blind because I read it all through. I did undestand most of it, too :)

I know it is out of the scope of this guide but ... any suggestions on where is the best to host the server(s)?

I was a sysadmin but I am out of it for several years now. Maybe it is time to start relearning the old knowledge and adding new stuff :)
properties (22)
authorervin-lemark
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t222353272z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:26:21
last_update2016-08-08 22:26:21
depth1
children2
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length395
author_reputation470,170,836,943,849
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,944
net_rshares0
@jesta ·
My current goto's are [linode](https://linode.com), [digital ocean](https://digitalocean.com) or [aws](https://aws.amazon.com). I've also heard good things about google's compute, but haven't used them yet.
properties (22)
authorjesta
permlinkre-ervin-lemark-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t223141800z
categorysteem
json_metadata{"tags":["steem"],"links":["https://linode.com"]}
created2016-08-08 22:31:42
last_update2016-08-08 22:31:42
depth2
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length206
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id692,020
net_rshares0
@ervin-lemark · (edited)
TNX. Will check them out.

And now back to php and mysql programming :)
properties (22)
authorervin-lemark
permlinkre-jesta-re-ervin-lemark-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t223028662z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:32:57
last_update2016-08-08 22:33:21
depth3
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length71
author_reputation470,170,836,943,849
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id692,034
net_rshares0
@felixxx ·
I usually don't upvote like this, but I use your tools all the time.
They are extremely helpful - Without them, I couldn't even follow people.
Here is my blind upvote - I just assume that this post is good.
properties (22)
authorfelixxx
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t220036974z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:00:39
last_update2016-08-08 22:00:39
depth1
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length206
author_reputation216,275,043,216,904
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,461
net_rshares0
@jesta · (edited)
Hahaha, hey... at least you're being honest :)

This post is primarily to get the instructions out there, so I can reference how my nodes are setup to other people getting involved. Many people use this.piston.rocks and steem.steemstats.com to power their own websites - and we'd like to see others creating nodes as well!
πŸ‘  
properties (23)
authorjesta
permlinkre-felixxx-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t220236080z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:02:36
last_update2016-08-08 22:03:00
depth2
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length322
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,499
net_rshares1,847,288,900
author_curate_reward""
vote details (1)
@jensm85 ·
Hi i am very interested in this.
But i am quite confused. Since there is not only STEEM, STEEM DOLLAR  and also STEEM POWER.

There are also from the server side, STEEM nodes, witnesses  and the third i forgot. Also all the explanations are quite diffiult. Maybe someone got a good explanation to repost for me ?
properties (22)
authorjensm85
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20170620t185819945z
categorysteem
json_metadata{"tags":["steem"],"app":"steemit/0.1"}
created2017-06-20 18:58:21
last_update2017-06-20 18:58:21
depth1
children0
last_payout2017-06-27 18:58:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length312
author_reputation361,567,763,942
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id5,392,474
net_rshares0
@johanherman ·
Great walk-through! I must say that I'm impressed by Steemit so far, but some of the documentation is a bit lacking. These kinds of posts really help.
properties (22)
authorjohanherman
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t221513686z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:15:15
last_update2016-08-08 22:15:15
depth1
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length150
author_reputation24,003,660
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,745
net_rshares0
@jesta ·
It is, I've searched high and low for some things and haven't found a lot. But, that's the kind of stuff I thrive on: deconstructing something and learning how it works. 

Hopefully what I've learned will help others get involved!
properties (22)
authorjesta
permlinkre-johanherman-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t222125615z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:21:24
last_update2016-08-08 22:21:24
depth2
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length230
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,873
net_rshares0
@lantto · (edited)
This is amazing and something I've been wanting to explore further. It should be listed as official documentation to encourage people to set up their own APIs. I'm spreading the word!
properties (22)
authorlantto
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t220409292z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:04:09
last_update2016-08-08 22:05:12
depth1
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length183
author_reputation1,806,855,037,770
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,537
net_rshares0
@mdsurfer ·
So is this essentially,  in comparison too to ethereum, we can designate our own node and build whatever I want on top of it? say a petshop? what about ICO's is there capability to write ICO's to interact with the main STEAM network via the node? or vice versa?

are there any frameworks developed like solidity but for STEEM

I am trying to get a handle on the capabilities, tools, and resources. I would like to help getting to develop new tech and possibly help with new deployment frameworks on top of this network I have a good feeling this platform is going to blow up in a short amount of time.
properties (22)
authormdsurfer
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20180221t042818484z
categorysteem
json_metadata{"tags":["steem"],"app":"steemit/0.1"}
created2018-02-21 04:28:21
last_update2018-02-21 04:28:21
depth1
children3
last_payout2018-02-28 04:28:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length601
author_reputation8,794,201,770
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id39,245,836
net_rshares0
@jesta ·
Well, you could, but you're still limited to the capabilities of Steem itself.

Steem itself doesn't actually have a smart contract layer - so you can't write consensus based logic. It's primarily a content (posts) store with voting mechanisms to surface content. 

Currently the platform has ballooned as well, and this article is severely out of data. To run a "full node" on the network now requires something like 270GB of RAM, which can be trimmed down slightly by using some of the filtering options. For example, I built a forum interface on top of Steem ([chainbb.com](https://chainbb.com]), and the Steem API node behind that is currently sitting at 54GB of RAM. 

steem-python and steem-js are the two primarily libraries that most people use at this time to interact with the chain, both available under https://github.com/steemit. 

We have a discord chat running for steem developers, if you're interested in chatting/asking more questions, feel free to join!

https://discord.gg/bU5fYD
πŸ‘  , ,
properties (23)
authorjesta
permlinkre-mdsurfer-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20180221t042818484z-2018220t235925518z
categorysteem
json_metadata{"app":"chainbb/0.4","namespace":false,"format":"markdown+html","tags":[]}
created2018-02-21 04:59:24
last_update2018-02-21 04:59:24
depth2
children2
last_payout2018-02-28 04:59:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,000
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries
0.
accountchainbb
weight500
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id39,251,695
net_rshares505,658,910
author_curate_reward""
vote details (3)
@marzukidewantara ·
Hi @jesta my witness
properties (22)
authormarzukidewantara
permlinkre-jesta-re-mdsurfer-re-jesta-building-a-high-availability-steemd-node-for-web-apis-2018220t235925518z-20180221t181243984z
categorysteem
json_metadata{"tags":["steem"],"users":["jesta"],"app":"steemit/0.1"}
created2018-02-21 18:12:51
last_update2018-02-21 18:12:51
depth3
children0
last_payout2018-02-28 18:12:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length20
author_reputation250,936,320,229
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id39,404,617
net_rshares0
@wiralhokseumawe ·
Steemian all

Previously I apologize if commented, because it does not match the topic. But I am sure you are a good and caring person, I am very sure you are too great person of course, I am very motivated with you @jesta
 You love to travel, on the way you meet abandoned children, I am sure you are a caring, loving and loving person that children can smile at children, it will be nice even though the valentine moment has passed. I am sure you will want to be discouraged, if you do not mind visit my bloq, i hope you can give input to my writing and direct me @jesta
Thanks you so much

**Give a little smile (Save the children)**
properties (22)
authorwiralhokseumawe
permlinkre-jesta-2018224t32435439z
categorysteem
json_metadata{"tags":[],"app":"esteem/1.5.1","format":"markdown+html","community":"esteem"}
created2018-02-23 20:24:42
last_update2018-02-23 20:24:42
depth3
children0
last_payout2018-03-02 20:24:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length636
author_reputation8,686,093,278,270
root_title"Building a high availability steemd node for web apis"
beneficiaries
0.
accountesteemapp
weight1,000
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id39,949,835
net_rshares0
@minfon ·
So great. 很ε₯½ηš„ steemd node
properties (22)
authorminfon
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160811t155613461z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-11 15:56:12
last_update2016-08-11 15:56:12
depth1
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length25
author_reputation4,620,523,428,308
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id747,518
net_rshares0
@murda-ra ·
@jesta
url for snapshot of a blockchain has not been updated 10 months, and url returns 404
http://einfachmalnettsein.de/steem-blocks-and-index.zip

Any updates hmm on this very productive and expanding community or just sex and money are actual subject ?

@den @steem @steemit
properties (22)
authormurda-ra
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20170618t144743345z
categorysteem
json_metadata{"tags":["steem"],"users":["jesta","den","steem","steemit"],"app":"steemit/0.1"}
created2017-06-18 14:48:00
last_update2017-06-18 14:48:00
depth1
children0
last_payout2017-06-25 14:48:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length277
author_reputation4,018,673,713,105
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id5,181,561
net_rshares0
@ntomaino ·
this is awesome. are you in the bay area? if so, would love for you to join our meetup in a few weeks. we're investors in nginx as well :)

https://steemit.com/steem/@ntomaino/silicon-valley-steem-meetup
properties (22)
authorntomaino
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t222701833z
categorysteem
json_metadata{"tags":["steem"],"links":["https://steemit.com/steem/@ntomaino/silicon-valley-steem-meetup"]}
created2016-08-08 22:27:00
last_update2016-08-08 22:27:00
depth1
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length203
author_reputation19,085,142,785,364
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,955
net_rshares0
@jesta ·
$0.16
I'm not unfortunately, I'm in the LA area. I'd love to join but that would require either a long, long drive or a flight :)
πŸ‘  
properties (23)
authorjesta
permlinkre-ntomaino-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t222930118z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:29:30
last_update2016-08-08 22:29:30
depth2
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.116 HBD
curator_payout_value0.039 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length123
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,991
net_rshares239,617,529,451
author_curate_reward""
vote details (1)
@rainman ·
$0.16
This is awesome!

Some tips:

- To compile even faster, only compile steemd: 'make -j4 steemd'
- To support transactions add 'network_broadcast_api'
πŸ‘  , , , ,
properties (23)
authorrainman
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t221343620z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:13:45
last_update2016-08-08 22:13:45
depth1
children1
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.164 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length148
author_reputation8,323,904,861,044
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,712
net_rshares378,158,315,794
author_curate_reward""
vote details (5)
@jesta ·
Thank you so much, that's awesome. 

I'll get these included in the appropriate sections and then get my servers modified for the same.
properties (22)
authorjesta
permlinkre-rainman-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t221656132z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:16:54
last_update2016-08-08 22:16:54
depth2
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length135
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,787
net_rshares0
@teego ·
$0.16
'Build twice' sounds really funny :) Apparently, you don't really like the `--data-dir` option
```
steemd --data-dir /node1
steemd --data-dir /node2
```
πŸ‘  ,
properties (23)
authorteego
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160810t144211363z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-10 14:42:12
last_update2016-08-10 14:42:12
depth1
children2
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.121 HBD
curator_payout_value0.038 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length152
author_reputation1,468,005,650,113
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id725,519
net_rshares401,275,522,989
author_curate_reward""
vote details (2)
@davidconstantine ·
Thats a great point lol
πŸ‘  
properties (23)
authordavidconstantine
permlinkre-teego-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20180110t195022561z
categorysteem
json_metadata{"tags":["steem"],"app":"steemit/0.1"}
created2018-01-10 19:48:30
last_update2018-01-10 19:48:30
depth2
children0
last_payout2018-01-17 19:48:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length23
author_reputation1,789,023,643,502
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id28,575,143
net_rshares0
author_curate_reward""
vote details (1)
@jesta ·
I didn't realize that was a thing! Now I wish I could go back and edit this post lol.
πŸ‘  
properties (23)
authorjesta
permlinkre-teego-re-jesta-building-a-high-availability-steemd-node-for-web-apis-20160810t204303959z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-10 20:43:00
last_update2016-08-10 20:43:00
depth2
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length85
author_reputation140,605,453,893,072
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id732,773
net_rshares0
author_curate_reward""
vote details (1)
@thecryptofiend ·
Thank you for posting this.  I don't have the requisite skills to use it but I'm sure I will be benefitting from things that people make using your post:)
properties (22)
authorthecryptofiend
permlinkre-jesta-building-a-high-availability-steemd-node-for-web-apis-20160808t222815922z
categorysteem
json_metadata{"tags":["steem"]}
created2016-08-08 22:28:15
last_update2016-08-08 22:28:15
depth1
children0
last_payout2016-09-08 11:14:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length154
author_reputation323,603,913,866,384
root_title"Building a high availability steemd node for web apis"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id691,971
net_rshares0