Announcing EOS-Voter, an EOS Block Producer Voting Tool & Light Wallet

in #eos6 years ago (edited)

With the launch of EOS just around the corner, we wanted to release the current iteration of our EOS light
wallet into the world.

It was recently discussed in some articles, such as EOS Is Coming, If Anyone Can Figure Out How to Vote, that there is a big gap between the current release of software and the ability of the masses to get involved and actually use it. This highlights the issue of accessibility, since it is currently necessary to have an advanced understanding of EOS in order to be able to perform simple tasks such as voting for block producers.

Our mission at Greymass is to build tools to help everyone understand and use EOS, and further, bring this ease-of-use to the masses. We are proud to present the first of our planned EOS tools: an EOS Voting desktop application. Eventually this open source software will act as the foundation for our full GUI Light Wallet, which will have many other useful tools for EOS stakeholders -- but in the meantime, we wanted to get it in the hands of users for launch. Currently, it allows you to stake your EOS and vote for producers, which is the most important facet of securely launching and approving the main EOS network.

A Note on Security

It goes without saying that in the cryptocurrency world, security (specifically of your private keys) is a primary concern.

Since our voting tool is a standalone application, your keys will never leave your computer. Your keys (if you choose to store them), are encrypted with AES-256 encryption and stored on your own device. Operations are only signed locally, never externally. The only connection that the application makes is to your desired API node -- one that you choose yourself. This is a far more secure solution than voting through a website interface.

Finally, everything we do at @greymass is open source and always will be. You can check for yourself that everything we say is true -- as they say, “Trust, but verify.”
The source code is available here. We encourage advanced users to build it themselves!



EOS Block Producer Voting & Wallet

eos-voter is a limited-functionality release of an open-source light wallet that is being designed for the EOS blockchain. This application can be used to connect to a remote EOS API endpoint to perform producer voting actions and a few basic wallet commands.

Features

  • CPU/Bandwidth Staking: Stake your EOS as either Bandwidth or CPU. This grants rights to resource usage on the network, in addition to the combined amount staked conveying weight while voting for block producers.
  • Block Producer Voting: Select which block producers to support and cast your vote. Please note that the block producer voting UI is not a research tool; it is a simple interface that provides a secure way to vote.
  • Local Wallet: Set a password while importing your private key to create a local wallet. Your key will be encrypted locally using this password. This password will be required each time you need to unlock the wallet.
  • Temporary Usage: If you prefer not store your keys within the application, simply choose not to set a password. When the application quits, your key will be forgotten.

Security: Private Keys

When using eos-voter, all transactions are signed within the application and your key is never transmitted. If a local wallet password is specified, the application will also save and encrypt your key for future use, using AES-256 encryption.

Get eos-voter

Download the Latest Release

The latest release will always be available on the releases page of this repository:

https://github.com/greymass/eos-voter/releases

If you are a...

  • MacOS User: Download either the DMG (eos-voter-***.dmg) or ZIP (eos-voter-***-mac.zip) file.
  • Windows User: Download the EXE (eos-voter-***.exe) file.
  • Linux User: Download either the SNAP (eos-voter-***-_amd64.snap) or DEB (eos-voter-***-_amd64.deb) file

Build it Yourself

If you'd rather build the application yourself, please ensure you have nodejs, npm/yarn already installed locally.

Note: If you are configuring this Electron application under a Windows development environment, it will take some extra steps that are not outlined here.

git clone [email protected]:greymass/eos-voter.git eos-voter
cd eos-voter
yarn install

Then either:

  • MacOS: yarn package
  • Linux: yarn package-linux
  • Windows: yarn package-win
  • All: yarn package-all

The files built will be located in the releases folder within the root folder.

Running Development Mode

git clone [email protected]:greymass/eos-voter.git eos-voter
cd eos-voter
yarn install
yarn dev


Tutorial: How To Use the Voting Tool

Step 1: Connect to an API node

The first page you you will see when opening the app is a splash page that asks you for an API node. You can insert any trusted community API node here, or even use your own node if you have one.

For launch, Greymass will be hosting the API node https://eos.greymass.com, which you will be able to use here right away.

Note: eos.greymass.com will point to the main network when it comes online. If you want to test things on the Jungle testnet, you can connect to http://eos.jesta.us/.

Step 2: Input Your Credentials

Next up, you will need to input your credentials: specifically, your account name and your private key. Don’t know your account name? No problem, the app can look it up for you!

(Optional) Step 3: Save Your Encrypted Credentials

Once you have input your account name and private key, you can choose to have them saved and encrypted to your device so that you don’t have to re-enter them later. The next time you unlock your wallet, it will be ready to go! But if you don’t want to do this, no worries -- you’ll still be able to use your wallet by inputting your credentials at the beginning of each session.

(Optional) Step 4: Stake Some EOS

When the main network is launched, you may need to stake some of your EOS in order to vote for producers. To do this, head over to the Wallet tab and choose an amount of EOS to stake.

Note: the main network will have staked the majority of your EOS. You will likely not want to stake anything more!

Note: the combined amount of staked EOS across CPU and Bandwidth will determine the weight of your vote(s).

Step 5: Vote for Some Producers

Now you’re ready to vote for Block Producers. Head back to the Voting page, and select your favourite producers here.

(Optional) Step 6: Check out our Splash Page

You’re done! If you like, you can click on our logo in the top right corner. On this splash page, you’ll find more info about this tool, and about our organization.

If you like this application, don’t forget to vote for us as one of your selected, trusted Block Producers -- we’ll let you know our Block Producer name when the mainnet launches!



Credits

The development of this application is being led by members of the Greymass team in an effort to connect EOS with its stakeholders.
Everything is open source; we encourage the community to help contribute!

For discussion or questions about this app, feel free to join us on telegram.

Sort:  

anyone from the community vouching for this? who's behind greymass?

I am, if that helps at all. It's actually based on the same foundation I'm building Anchor (my next Steem wallet) on.

yup that helps!

Jesta = value

And @jesta you are awesome :) Thank you for Vessel, thank you for Grey Wallet.

hey any chance this error im getting when trying to vote for BPC is common? :)

3050003: eosio_assert_message_exception
eosio_assert_message assertion failure

I am guessing that i cant vote yet? or did i not stake right? My 501 eos did come up as having all but 10 tokens stakes, so im just hoping its no big deal.
Anyway THANK you SO MUCH for making this! I just saw the news on the reddit eos that 11 big block producers endorsed this! so cool to see it looking soi much like vessel or chainbb or steemdb i feel liek such an insider having used your great software before this big app came out!

EDIT:
FIXED! I tried again and my votes went through !! here it is!!

what a relief :D I just had to "click to show' the agreement which i may not have done before, either that or it just sometimes has that error, feels similar to how vessel wallet would sometimes disconnect from a node but you could always click to reconnect, i feel like maybe the greymass node maybe was the reason i got thatt error? I looked it up on google only found one github request or report about it with some poor sukcer who pasted his entire code including his eosprivate key in there lol sucks for him but anyway i didnt find more than two reports of this error, i hope that was just stemming from my possible lack of clicking that button that expands the agreement you must agree to when you vote for block producers in this grey mass eos-voter

thanks again for creating this! Im so glad my vote finally went through after trying again a few hours later and after making sure to click expand on the agreement before sending the transmission! !

Yeah - this error is being returned by the node you're connected to (potentially ours) as some kind of error. We have gotten a couple reports of this happening and restarting the app seems to fix it. Glad you got through it and got to vote!

finally a new comment I can upvote at 100%! :D i was waiting for you to make a comment or post I could upvote! :D

And yeah I was just a lil irrationally scared that this error was somehow because I had maybe registered wrong or that my eos private key wasn't working for some reason and haha i was sooo relieved to see that error was nothing serious! :D

Anyway man if you started making dlive dtube or even youtube videos showing yourself testing our your own wallety talking about new features, wed all upvote it i bet! I know I would! anyway I know your busy but I think were all ready to just upvote any casuial fun posts you may have or casual ideas for steem products! You are really helping bring a LOT of EOS investors to steem this way man! its so cool! I gotta go get something to eat or id be sitting here wanting ti just type you out a whole essay all about everything ive been thinking about.,.. but ill let you get back to work :D

my mind is paralyzed with excitement and i forgot all the things i wanted to quickly mention to you, oh well just random ideas I have listed on my blog ... ill bid bot any potentiually serious ideas and youll see them when you see them :( I jhust think you deserve more publicity or your BRAND does and we should be finding users on steem like @web-gnar @desmond41 @artzanolino and other startup artists even @elgeko established ones who may want to help u make some EOS art well, elgeko already has :D and @stellabelle is and I just think GreyMass and your products deserve their own videos and images and art and fan clubs :D Ive watched you work over the year ive been here from chainBB to vessel and now this and I know you have even more great Apps coming, like a new steem wallet, so I just want to make sure you get the sorty of publicity you deserve and that Steemit inc makes sure to hire you like they did with @inertia or at least Block one with EOS should hire you!

I have to say I’m blown away by the thoughtful roadmap and your inspired, yet analytical approach that I think this whole space could greatly benefit from. The care you put into your dev initiatives and your views to the future are what will help make the distributed ledger space rise above and change the world. Thanks for all you do and... Keep on keepin’ on!

Crypto and Blockchain often lack good documentation and easy to use tools. Your post makes a great difference. Continue good work.

For launch, Greymass will be hosting the API node https://eos.greymass.com, which you will be able to use here right away.

other public API endpoints via https:

https://api.tokenika.io/
https://api1.eosasia.one/
https://api-eos.blckchnd.com/



Do you think you could add list of suggested API endpoints, so people would not have to manually look for them?

(of course, users should always be able to use any API endpoint they want...)

We have a list of suggested endpoints that the tool links to on our github page. Still torn on whether we want to include those in-app or not (since updating it would require updating the app).

Hi @jesta , This is an amazing easy to use interface! I believe it may end up being one of the wallets/interfaces of choice for EOS holders, also considering all the tools/features you will be adding!

Regards, @gold84

Hello current witness.

There are a couple of users acting bizarrely on Steemit.

The are @crigmarlo and @nice-steemer. Their steemd lists say that all they do is downvote people and their blogs are full of resteems. I got downvotes from both of these accounts on an 18-day-old post so I think they may be connected.

Hey, Man. I have vote you as BP. Keep on

cannot find your telegram... telegram is useful for communicating with us.

Interesting though, but I'm gonna stick to my Infinito wallet. It's enough, I don't see the voting tool is kinda helpful for crypto end-user like me and I think users also not allowed to vote.

Anyone else use this Voting Tool yet?

Yup i used it and succesfully voted for BP! felt good to do my first real EOS transaction on the main net :sunglasses:

Just Watched y'all on EOSGo. So thanks.

So...did steem witness pay ended up paying for those tools @jesta?...that's...awkward.

Pay for them? No...?

I don't see how that's a logical conclusion. The only way it does is if you assume that 100% of my effort is put into Steem development, 24/7/365. It's not, and that's never been the case. I go 100% at a project when I'm on it, but it's not every day.

Honestly of all people - I figured you'd be excited to see technologies advancing and be able to see through all the drama.

The drama starts before the blockchain. :)

How does this differ from Steemit? Seems that Steem is rather similar; haven't yet found anything useful on Eos.

The governance systems between Steem and EOS are similar. They have a set of block producers that are elected by the community to serve the network in producing blocks (and whatever else they may add value with to advance it's goals). It's also in the same "family" of blockchains, so the software is pretty similar. That's why it was fairly easy to just replicate code that looks very similar to other apps I've built.

That's where the similarities end for the most part though.

Steem is a content platform with a social rewards currency attached to it. It will (hopefully) soon have SMTs which will basically be a turn-key solution that allows people to easily deploy their own tokens and power their own social network with those rewards.

EOS on the other hand is a general purpose computing platform. It acts as a giant computer of sorts (like ETH or NEO), allowing anyone with staked tokens to build and/or run decentralized applications. All of the concept type applications you see happening within the ETH token world are similar to what EOS will be able to do.

Probably more than you asked for - but others may have the same sort of question.

Thanks for the response! That is exactly what I was looking for, actually; you see, I'm trying to figure out how to dedicate the extra resources I have on some of my offsite servers. I want to run a Steem witness, just because, but now looks like I ought to go get something to do with Eos as well, doesn't it? What to do, is the big question; mining Eos is probably too difficult at the moment.

Thank you @jesta and Greymass team!
I was interested in EOS and I will try that in development

Hi man, does EOS use the same 30 votes thing as Steem does, where you use them or lose them, or is it a bit different?

For the most part - it's very similar.

What do you mean when you say "use them or lose them"? As in if you don't vote, it's essentially unused producer votes?

One distinct difference is that votes have a half-life and decay over time, and I think the way it's divided between those you vote for may be different?

Yeah, that's what I meant. Do your total votes get shared between all those you vote for, or if you don't make 30 votes, are they unused?

Oh yeah, I read about the weekly decay. That's a nice feature IMO.

I just tested this a bit, and by going from 5 producer votes on one of the testnets up to 20 producer votes, the value of the original 5 didn't change. So it seems that they are unused votes, not divided up based on the number you vote for.

Good stuff on this on the eosgo livestream today.

I vouched for you guys in the chat a couple times, it was neat to see y-day and today the names and faces we see here for so long.

There were a lot of positive comments on the stream, and yours was definitely the loudest of all those voices! :)

Way to support people making solid contributions to the space.

Thanks so much!

Thank you got it installed on Windows x64 ...

This is fantastic, very easy to use and I like the smooth polished look of the UI! I've already used it to practice voting on the Jungle testnet. It's quite reassuring to see that my EOS was converted correctly from the ERC20 snapshot. Gives me peace of mind before the mainnet launch.

If anyone wants to try it out, feel free to connect using our BuildTeam test node on the Jungle testnet: http://51.15.227.98:8888

Agreed! @cryptomancer ! I believe this wallet from @jesta will be within the wallets of choice for EOS holders!

Regards, @gold84

dude eventually @jesta may just make a SUPER wallet that lets you import private keys for Bitcoin Ethereum Bitshares Steem (like vessel) and EOS all in ONE wallet! And itcould even accept a few other altcoins, he could seriously have the ultamite crypto browser built in to make your experience online safe and i just see so many possibilities, it could even work with a 2fa enabled encrypted tethered mobile app that doenst keep any keys on the phone but which allows you to login or tether or tunnel or oauth or 2fa in to your desktop, I just feel a mobile wallet would be cool but shouldnt have people loading their phone with private keys. Jesta could instead build his own mobile app lgogin system with regular email username and resetable password logins.

When will your API node be up?

Im sorry im being of topic but i dont know how to contact you any other way. I just have one question.
Do you think that there is any way that some kind of addon could be created for Steem, maybe an addon for Google chrome, Mozzila etc... That would create a filtered tab on the Steemit interface which would filter out all the Upvote bought posts and leave up only those that gained upvotes organically.. A way to filter out posts with upvotes from Booster, Minnowbooster, buildawhale etc...
Could this be done?

Alternatively, if you want to use Scatter the team at LiquidEOS (by Bancor) have made this portal. http://vote.liquideos.com/

They are the only BP candidate from Israel ;) Great for geographical diversification.

Thanks for the, once again, amAZING! APP... =) anyone doing a report about live API nodes and any sort of evaluation/ranking? @jesta @greymass

$ git clone [email protected]:greymass/eos-voter.git
Cloning into 'eos-voter'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Sorry - I need to update the repo.

The instructions themselves shouldn't use the git@ protocol since that implies authentication, they should use https://. I'll get them updated in one of the next releases.

In the mean time:

https://github.com/greymass/eos-voter.git

Hi folks,

The mainnet is up and running.
EOS Romania is running the block producer eosromania22.
We support EOS, we are one,
one for all and all for one.

Go EOS!

Great tutorial but being honest, this is a reason why mainstream adoption will take time to grow. The ability for many individuals to understand these processes without making a mistake or falling into a scam along the way makes the experience difficult and will lead to many not participating in the process which I personally find gratifying.

This is great guys new tool for eos ... good to see your their ready to take up the mantle if need be ... look forward to seeing more dapps created by you ...see you on the other side :»)

Great! Are you thinking about creating a hardware wallet to?

What am I doing wrong? It says: 3090003: unsatisfied_authorization provided keys, permissions, and delays do not satisfy declared authorizations

It sounds like one of two things - either the key is invalid now, or it's the owner key. We have found that if the owner key is used, not all transactions can be signed properly due to a bug in eosjs.

In the first situation - we'd recommend only using the active key within a wallet, unless you're trying to change your active key, which requires the owner key.

Brian and I tried several voting apps the other day. Greymass was the easiest and most visibly pleasing. We are doing a video soon on voting and we intend to demonstrate this tool. Great job Greymass! Clay Albright - EOS USA