1.0.0 • Published 6 years ago

cashpipe v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
6 years ago

cashpipe

let wallet = cashpipe()

await wallet.balance()
// {
//   btc: 1020234,
//   eth: 1241234,
//   ltc: 234235
// }

await wallet.send('0.0056 btc', 'someAddress')
// {
//   id: 'sdfjasldfj',
//   route: [...],
//   ...
// }

await wallet.price(1000, 'btc').in('ltc')

await wallet.swap(1000, 'btc').for(5000, 'ltc')

Protocols

Outcry

A gossip network for order announcement, with a tokenized "license" for rate limiting.

Levels the playing field for knowledge about potential counterparties since the data flows openly (without this, network effects would put all the orders on centralized order books). Since there is a limited capacity, the market should work out to being most useful for whale market makers, which provides a large amount of volume capacity.

Features for Protocols to Cover

  • Renting liquidity
    • Pay per unit per time
    • Rate negotiation
  • HTLC payment routing
    • Support atomic swaps (generalizes as a normal payment route, e.g. routing from A->C BTC, C->B BTC, B->A LTC)
  • Finding routes
    • Disclose channels with proof of channel for source routing,
    • or paid non-source routing with proof of destination

Unix-Philosophy Protocols

  • Meta-protocol(s) to do peer handshake, negotiate supported sub-protocols, peer discovery
  • Sub-protocols have ids, versions, user agents, etc.
  • Non-native protocols can be wrapped and discovered/connected through this (e.g. Bitcoin p2p protocol, Tendermint full nodes for specific networks)
  • P2P is hard to build for, many people rely on blockchains just because the hard P2P stuff is done for them, even though that's not what they need. This can be a stack that makes it easy to build new protocols (similar in scope to libp2p, but hopefully less complex and imposing less on the developer)
  • API for default meta-protocol client:
    • Handle incoming connections
    • Discover new peers for outgoing connections
    • JSON messages? (with raw socket if needed)
      • Or raw socket by default, with easy way to pipe into ndjson
    • Disconnect bad behaving peers