Vessel 0.0.8 - Configurable Steem node + new default node

in #steem-project7 years ago

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.

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 = database_api login_api account_by_key_api network_broadcast_api raw_block_api
enable-plugin = witness account_history account_by_key raw_block
history-whitelist-ops = transfer_operation transfer_to_vesting_operation withdraw_vesting_operation feed_publish_operation convert_operation account_create_operation account_update_operation witness_update_operation account_witness_vote_operation account_witness_proxy_operation pow_operation custom_operation report_over_production_operation custom_json_operation set_withdraw_vesting_route_operation limit_order_create2_operation challenge_authority_operation prove_authority_operation request_account_recovery_operation recover_account_operation change_recovery_account_operation escrow_transfer_operation escrow_dispute_operation escrow_release_operation pow2_operation escrow_approve_operation transfer_to_savings_operation transfer_from_savings_operation cancel_transfer_from_savings_operation custom_binary_operation decline_voting_rights_operation reset_account_operation set_reset_account_operation claim_reward_balance_operation delegate_vesting_shares_operation account_create_with_delegation_operation fill_convert_request_operation author_reward_operation curation_reward_operation comment_reward_operation liquidity_reward_operation interest_operation fill_vesting_withdraw_operation fill_order_operation shutdown_witness_operation fill_transfer_from_savings_operation hardfork_operation comment_payout_update_operation return_vesting_delegation_operation comment_benefactor_reward_operation producer_reward_operation

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
    ssl_certificate /etc/letsencrypt/live/wallet.steem.ws/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/wallet.steem.ws/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /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!

Sort:  

Thank you Mr Awesome.

Thanks for the continued work and dedication, @jesta. Vessel is one gorgeous desktop app and a blessing to many technically less inclined people who need to learn to use only their posting key.

Your work on it deserves to be highlighted, especially given the constant updates you also provide.

Thanks for your support @jesta! I use steemstats every day and vessel for delegation. I just voted for you as witness and upped this post.
I notice on drakos' site that you have 3 witness votes for inactive witnesses and some with old steem versions running.. I would really appreciate if you would consider switching out an inactive one to vote for me and give me a chance to perform better. :)
I am a system engineer and developer - If I can get near the top of the list I will invest serious time into creating exciting custom projects for Steemit that I don't have time/resources to do otherwise. My witness application is here - cheers!

Perfect timing, I gave up attempting to get 0.0.7 working literally 1 hour before you posted this. Thanks man!

Informative post thanks for sharing

Thanks to explain this information is very usfull for new user its hellp lot

nice info you have updated ... this is great

Hi @jesta, this post is trusted.very informative data thanks. ........

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.035
BTC 90558.46
ETH 3133.31
USDT 1.00
SBD 3.06