0.9.2 • Published 6 years ago

ledgerloops v0.9.2

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

LedgerLoops

Deploy

Examples:

  • in-browser: shows a graph of friends, you can tell friends to give each other money, and they will cooperate to find and resolve ledger loops. See the README in that folder for instructions.
  • client-server: example where Marsellus lives server-side, while Mia and Vincent live client-side. Shows and tests how WebSockets are used. See the README in that folder for instructions.
  • monetized-blog: static page, combined with a WebSocket server, that will accrue money when a user with the LedgerLoops browser extension visits this page. This demo is still under construction. See https://github.com/ledgerloops/ledgerloops/issues/21.
  • monetized-blog-heroku: Same as the previous demo, but running on Heroku instead of on localhost, and with the statics server rolled into the LedgerLoops agent server.

  • API

  • LedgerLoops.Agent constructor (myName, mySecret, credsHandler)

    • myName and mySecret are used when connecting to a server
    • credsHandler ({ peerName, peerSecret}) => Boolean is called when someone else connects as a client
  • Agent#addClient: function(options) { return this.hubbie.addClient(Object.assign({ myName: this._myName, mySecret: this._mySecret, protocols: LEDGERLOOPS_PROTOCOL_VERSION }, options)); }

  • Agent#listen: function (options) { return this.hubbie.listen(Object.assign({ protocolName: LEDGERLOOPS_PROTOCOL_VERSION }, options)); }

  • Agent#addTransaction: function (peerName, amount) return this._propose(peerName, amount); }

  • Agent#getBalance ()

    • returns a hash with the bank's current, payable, receivable balances.

* Agent#payIntoNetwork(peerName, value)

* instruct the Loops engine to use your balance from the account with that peer to pay into the network

* Agent#receiveFromNetwork(peerName, value)

* instruct the Loops engine to use the account with that peer to receive balance from the network

Messages and their fields when on the wire:

  • ADD

    • protocol: 'ledgerloops-0.8'
    • msgType: 'ADD'
    • msgId: integer
    • beneficiary: 'you' or 'me'
    • amount: integer
    • unit: 'UCR'
    • note: String (optional)
  • ACK

    • protocol: 'ledgerloops-0.8'
    • msgType: 'ACK'
    • msgId: integer
  • REJECT

    • protocol: 'ledgerloops-0.8'
    • msgType: 'REJECT'
    • msgId: integer
    • reason: String (optional)
  • COND

    • protocol: 'ledgerloops-0.8'
    • msgType: 'COND'
    • msgId: integer
    • condition: <256 bits in a lower-case hex string>
    • beneficiary: 'you' or 'me'
    • amount: integer
    • unit: 'UCR'
    • routeId: String (from probes)
    • note: String (optional)
  • FULFILL

    • protocol: 'ledgerloops-0.8'
    • msgType: 'FULFILL'
    • msgId: integer
    • preimage: <256 bits in lower-case hex format>
  • PLEASE-FINALIZE

    • protocol: 'ledgerloops-0.8'
    • msgType: 'PLEASE-FINALIZE'
    • msgId: integer
  • PROBES

    • protocol: 'ledgerloops-0.8'
    • msgType: 'PROBES'
    • cwise: Array of 64-bit lower-case hex strings
    • fwise: Array of 64-bit lower-case hex strings
0.9.2

6 years ago

0.9.1

6 years ago

0.9.0

6 years ago

0.8.5

6 years ago

0.8.4

6 years ago

0.8.3

6 years ago

0.8.2

6 years ago

0.8.0

6 years ago

0.4.1

7 years ago

0.4.0

7 years ago