eosc

module
v0.6.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2018 License: MIT

README

eosc command-line swiss-knife

eosc is a cross-platform (Windows, Mac and Linux) command-line tool for interacting with an EOS.IO blockchain.

It contains tools for voting and a Vault to securely store private keys.

It is based on the eos-go library, used in eos-bios, the tool used to launch the EOS mainnet.

This first release holds simple tools, but a whole cleos-like swiss-knife is being developed and will be released shortly after mainnet launch. Source code for most operations is already available in this repository.

Installation

Install from https://github.com/eoscanada/eosc/releases or build from source with:

go get -u -v github.com/eoscanada/eosc/eosc

eosc vault

The eosc vault is a simple yet powerful EOS wallet.

New wallet

Create a new wallet with:

$ eosc vault create --keys 2
Created 2 keys. Let's secure them before showing the public keys.
Enter passphrase to encrypt your keys:
Confirm passphrase:
Wallet file "./eosc-vault.json" created. Here are your public keys:
- EOS7MEGq9FVb2Ve4bsZEan1t146TKCyo8dKtLvihrNhGbPLCPLjXd
- EOS5QoyZwJvpPjmZAa3HdgTn2FdNABBffXLD95WPagiARmaAHMhin

If you are still within the ERC-20 periods, you could register such keys on Ethereum, to be ported to mainnet.

Importing keys

Or import an existing private key. This key will be encrypted to disk with your password in the default eosc-vault.json file:

$ eosc vault import
Vault file not found, creating a new wallet
Type your first private key:        [insert your private key here]
Type your next private key or hit ENTER if you are done:
Keys imported. Let's secure them before showing the public keys.
Enter passphrase to encrypt your keys:
Confirm passphrase:
Wallet file "./eosc-vault.json" written. Here are your public keys:
- EOS5tb61aZMAfQqKDsnkscFq76JXxNdi7ZhkUmkVZUkU4zPzfeAFx

The vault operations do zero network calls and can be done offline. The file is encrypted, can safely be archived and is future proof.

Cryptography used

The cryptography used is NaCl (C implementation, Javascript port, Go version, which we use). And key derivation is Argon2, using the Go library here.

You can inspect the crypto code in our codebase, it is 79 lines, including blanks and comments.

eosc vote

With a vault defined locally, you can vote:

$ eosc vote producers youraccount eoscanadacom someotherfavo riteproducer -u http://mainnet.eoscanada.com
Enter passphrase to unlock vault:
Voter [youraccount] voting for: [eoscanadacom]
Done

This will sign your vote transaction locally, and submit the transaction to the network through the http://mainnet.eoscanada.com endpoint. You can also point to some other endpoints that are on the main network.

NOTE: This will not work before mainnet launches!

Features in the work

  • Have serve default to asking a confirmation on the command line before signing each transactions.
  • Add --accept to auto-accepts signatures (only if listening on a local address).
  • Shamir Secret Sharing-encoded wallets, with support for fast and easy multi-sig, even through a secure network.
  • A full suite of tools to help Block Producers, developers, end users, in their every day life.

FAQ

Q: Why not use cleos instead ?

A: cleos is hard to compile, being in C++, as it requires a huge toolchain. It uses sha512 key derivation, which is faster to brute force, the Argon2 key derivation is stronger and would take an attacker a lot more efforts to bruteforce. eosc works on Windows where cleos doesn't. eosc contains a wallet inside, and is able to use it to sign some transactions, cleos interfaces with yet another program (keosd) in order to sign transactions, making it more complex to use. eosc brings keosd and cleos together in a swiss-knify package.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL