Command-line pool server, host server, and client for vipnode.
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
client pool, host, client: Pretty print balance updates Dec 12, 2018
ethnode ethnode: NetworkID String() and Is(...) helper Nov 1, 2018
host pool, host, client: Pretty print balance updates Dec 12, 2018
internal internal/pretty: Ether support for negative values Dec 12, 2018
jsonrpc2 jsonrpc2: Expose RemoteAddr in Codec interface Nov 22, 2018
pool pool, host, client: Pretty print balance updates Dec 12, 2018
request request: Normalize addresses when comparing signer Nov 13, 2018
.gitignore main: Add --config and --print-config Nov 26, 2018
ADVANCED.md Move pool and design details to ADVANCED.md Dec 5, 2018
LICENSE Initial commit Jun 12, 2018
Makefile Makefile: Switch stagingpool to new contract flags Nov 27, 2018
README.md README: Switch one-liner to double-curl Dec 5, 2018
build_release build_release: Rename binary Nov 19, 2018
client.go main: Update pool MinBalance and default Price to be ~$0.5/mo Dec 6, 2018
go.mod go mod update: update badger api Nov 19, 2018
go.sum go mod update: update badger api Nov 19, 2018
host.go main: Use enode string from rpc if no NodeURI override is provided Nov 22, 2018
logger.go lint improvements Jul 17, 2018
main.go main: Pool MinBalance default to off (better onboarding experience) Dec 11, 2018
pool.go main: Retry PoolStatus.GetBalance in case connection dropped Dec 11, 2018
poolhostclient_test.go host, pool, main: Make host --enode optional Nov 22, 2018
server.go main: Add CORS flag for pool Oct 22, 2018

README.md

Vipnode

Vipnode creates an economic incentive to run full nodes and serve light clients.

  • Connect your light client to the Ethereum network instantly, with time-metered fees.
  • Hosting a full node? Join a vipnode pool and earn money for every vipnode client your node serves.

Status: Beta. Fully functional, needs testing. Participation payout is currently using Rinkeby money, subscribe to the newsletter for updates.

Quickstart

Installing

  1. Grab the latest binary release for your platform from here: https://github.com/vipnode/vipnode/releases

    Or run this one-liner for linux_amd64 to download and extract:

    curl -s https://api.github.com/repos/vipnode/vipnode/releases | grep -om1 "https://.*/vipnode-linux_amd64.tgz" | xargs curl -sL | tar vxz
    
  2. Once you extract it, you'll have a vipnode directory. You can run the binary inside of it:

    $ tar xzf vipnode*.tgz
    $ tree vipnode/
    vipnode
    ├── LICENSE
    ├── README.md
    └── vipnode
    $ cd vipnode/
    $ ./vipnode --help
    

You can move the vipnode binary into your $PATH for convenience: sudo mv vipnode /usr/local/bin/.

While exploring, try using the -vv flag for extra verbose output.

How to connect as a client

Clients pay a small fee per minute of being connected to a vipnode host. When you connect to a pool for the first time, you'll get a welcome message with instructions.

  1. Run a local geth in light mode, something like: geth --syncmode=light --rpc --nodiscover --verbosity 7
  2. vipnode client -vv

It should automatically find the RPC and nodekey. If it doesn't, it will fail with a useful error message for how to provide those paths.

How to connect as a full node host

Hosts earn a small fee per minute of being connected to a vipnode client.

  1. Run a local geth in full mode with lightserv enabled, something like: geth --lightserv=60 --rpc
  2. vipnode host -vv --payout=$(MYWALLET)

Advanced Details

For high-level design and details on running your own pool, check ADVANCED.md

License

MIT