Vessel 0.0.8 - Configurable Steem node + new default node

I have been getting a lot of Vessel questions lately, and most of it surrounds Vessel acting funky because it can't connect to Steem. So I took the afternoon and added the option for you to specify whatever Steem node you want within the options. Before I get too deep in the post, a few things I'm planning on repeating every post for those of you unaware of Vessel:

What is Vessel?

Vessel is a desktop wallet for the Steem blockchain, which you can download and use on your computer. Vessel is free to use and open source, and is designed to be a way to help secure your account on the Steem blockchain. While using Vessel, your keys/password never leave your computer, transactions are signed within the app, and then broadcast to the network much like any other downloadable cryptocurrency wallet.

Previous updates about Vessel:

Download Vessel

Vessel is still beta software and it's recommended that you treat it as such. Before committing irreversible actions on your account (such as large outgoing transfers), please test with smaller amounts to ensure it's working properly on your computer.

Download available on github for macOS, Windows and Linux.

  • Releases: https://github.com/aaroncox/vessel/releases
  • Bug Reports: https://github.com/aaroncox/vessel/issues
  • Source Code: https://github.com/aaroncox/vessel

What's new in 0.0.8

This is a small release, it has two small changes:

  • steem node selection: You can now specify which Steem RPC node you'd like Vessel to use.
  • default node changed: The default connection for Vessel now goes to https://wallet.steem.ws, instead of https://steemd.steemit.com. If you'd prefer to use the original, feel free to update it.

Changing the Steem Node

https://steemdb.com/vessel/34.png

Within the settings are of Vessel, you can now specify your Preferred Steem Node.

Simply enter the full URL of the node in the box and click the blue Update button to apply the change.

The currently used node (if any) will be displayed above the button.

Vessel will now automatically connect to this node from here on out.

The new "default" node

Users who update won't have to do anything if they don't want to change nodes. I've setup a new server at https://wallet.steem.ws specifically for Vessel and other wallet usage. If you don't set a value in the preferred node or the value isn't valid, it will use this new node by default.

This node isn't a full node, it's a node tailored specifically for wallet functions. If you're curious as to how the node was configured, read on.

steemd - cmake flags

The following is the settings used when setting up wallet.steem.ws:

cmake -DCMAKE_BUILD_TYPE=Release -DCLEAR_VOTES=ON -DLOW_MEMORY_NODE=ON ..

Clear votes is set to ON (though, unsure of how helpful considering votes aren't part of account history) and it's set to be a low memory node. From what I understand the low memory flag prevents it from storing non-critical information (like json_metadata on accounts).

steemd - config.ini

``` rpc-endpoint = 127.0.0.1:8090

public-api = databaseapi loginapi accountbykeyapi networkbroadcastapi rawblockapi enable-plugin = witness accounthistory accountbykey rawblock history-whitelist-ops = transferoperation transfertovestingoperation withdrawvestingoperation feedpublishoperation convertoperation accountcreateoperation accountupdateoperation witnessupdateoperation accountwitnessvoteoperation accountwitnessproxyoperation powoperation customoperation reportoverproductionoperation customjsonoperation setwithdrawvestingrouteoperation limitordercreate2operation challengeauthorityoperation proveauthorityoperation requestaccountrecoveryoperation recoveraccountoperation changerecoveryaccountoperation escrowtransferoperation escrowdisputeoperation escrowreleaseoperation pow2operation escrowapproveoperation transfertosavingsoperation transferfromsavingsoperation canceltransferfromsavingsoperation custombinaryoperation declinevotingrightsoperation resetaccountoperation setresetaccountoperation claimrewardbalanceoperation delegatevestingsharesoperation accountcreatewithdelegationoperation fillconvertrequestoperation authorrewardoperation curationrewardoperation commentrewardoperation liquidityrewardoperation interestoperation fillvestingwithdrawoperation fillorderoperation shutdownwitnessoperation filltransferfromsavingsoperation hardforkoperation commentpayoutupdateoperation returnvestingdelegationoperation commentbenefactorrewardoperation producerrewardoperation

bcd-trigger = [[0,10],[85,300]] follow-max-feed-size = 500 bucket-size = [15,60,300,3600,86400] history-per-size = 5760 enable-stale-production = false required-participation = false

shared-file-size = 40G shared-file-dir = /dev/shm ```

The node itself makes use of the history-whitelist-ops option. This option lets you specify which types of account history you want the server to keep track of for use within every account's history.

Currently it's set to every type of operation involving funds and excludes anything to do with the social networking aspects of Steem.

nginx - vhost

``` upstream websockets { server 127.0.0.1:8090; }

server { listen 80; listen 443 ssl; # managed by Certbot sslcertificate /etc/letsencrypt/live/wallet.steem.ws/fullchain.pem; # managed by Certbot sslcertificatekey /etc/letsencrypt/live/wallet.steem.ws/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssldhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

server_name wallet.steem.ws;
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";
}

} ```

This is the nginx frontend setup to serve the connection out to the world. Pretty standard, but figured I'd include it for anyone else looking to replicate wallet.steem.ws.

Thanks!

Thanks for using Vessel and now I'm off to go add this feature to chainBB!

$ 182.324 SBD
60