RE: [piston.web] First Open Source Steem GUI - Searching for alpha testers

You are viewing a single comment's thread from:

[piston.web] First Open Source Steem GUI - Searching for alpha testers

in piston •  9 years ago 

I think it would be more impotent to have a way for independent community members to run API nodes them self, then having a nice geo redundant deployment managed by one party.

What dose the API Server consists of? Is this just the API of steemd or is there another service involved and if so would it be possible to have the code available to play around with and try to build a independent setup connecting to a local steem-node?

Not to be ungrateful, my first reaction to this post was off course: awesome, finally a way to use steem independent of steemit.com like a real decentralized app. And it still locks to me a lot like that, only this small part seems missing, so thanks a lot for this awesome project!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

I think it would be more impotent to have a way for independent community members to run API nodes them self, then having a nice geo redundant deployment managed by one party.

Agreed!!

What dose the API Server consists of? Is this just the API of steemd or is there another service involved and if so would it be possible to have the code available to play around with and try to build a independent setup connecting to a local steem-node?

It's almost a standalone Steem node. This is the steemd config of this.piston.rocks:
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

and this is an exert of what NGINX does to proxy the API via SSL:

            server {
                                            listen 443 ssl;
                                            server_name this.piston.rocks;
                                            root /var/www/html/;

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

                                            ssl_certificate /etc/letsencrypt/live/this.piston.rocks/fullchain.pem;
                                            ssl_certificate_key /etc/letsencrypt/live/this.piston.rocks/privkey.pem;
                                            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                                            ssl_prefer_server_ciphers on;
                                            ssl_dhparam /etc/ssl/certs/dhparam.pem;
                                            ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
                                            ssl_session_timeout 1d;
                                            ssl_session_cache shared:SSL:50m;
                                            ssl_stapling on;
                                            ssl_stapling_verify on;
                                            add_header Strict-Transport-Security max-age=15768000;

                                            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";
                                            }

                                            location ~ /.well-known {
                                                                            allow all;
                                            }

            }

Not to be ungrateful, my first reaction to this post was off course: awesome, finally a way to use steem independent of steemit.com like a real decentralized app. And it still locks to me a lot like that, only this small part seems missing, so thanks a lot for this awesome project!

The nicest thing to have would be a network of public API nodes that work like the P2P network. There are known SEED nodes and they just forward your requests to one of the publicly know APIs. Just like what electrum is doing ... or the NTP pool.