JavaScript Bitmessage library
Go to file
2014-12-28 19:59:57 +03:00
lib Typo fixes 2014-12-28 00:04:23 +03:00
.gitignore Initial commit 2014-12-11 20:59:48 +03:00
.jshintignore Fix .ignores 2014-12-27 18:26:01 +03:00
.jshintrc Implement address decoding 2014-12-18 19:47:18 +03:00
.npmignore Fix .ignores 2014-12-27 18:26:01 +03:00
.travis.yml Fix installing firefox on travis 2014-12-18 23:34:45 +03:00
COPYING Initial commit 2014-12-11 20:59:48 +03:00
karma-all-tests.js Implement Address.encode and Address.getRandom 2014-12-27 18:18:14 +03:00
karma.conf.js Implement Address.encode and Address.getRandom 2014-12-27 18:18:14 +03:00
package.json Implement Address.encode and Address.getRandom 2014-12-27 18:18:14 +03:00
README.md Add info to readme 2014-12-28 19:59:57 +03:00
test.js Fixes 2014-12-27 18:24:02 +03:00

bitmessage Build Status

JavaScript Bitmessage library for both browserify and node. The goal of this project is to implement Bitmessage protocol v3 for both platforms at the maximum possible level (we still can't create TCP connections or listen for incoming connections in the Browser but Proof of work and crypto is fully doable).

References

Implementation details

With the help of browserify bitmessage provides different implementations for Browser and Node.js with the same API. Because WebCryptoAPI defines asynchronous promise-driven API, implementation for Node needs to use promises too.

  • Use Node.js crypto module/library bindings where possible
  • Use WebCryptoAPI where possible
  • Promise-driven API

Feature matrix (both Browser and Node)

  • crypto
    • SHA-512
    • SHA-256
    • RIPEMD-160
    • PRNG
    • ECC keys manipulation
    • ECDSA
    • ECDH
    • ECIES
    • AES-256-CBC
    • HMAC-SHA-256
  • Core structures
    • var_int
      • encode
      • decode
    • var_str
      • encode
      • decode
    • var_int_list
      • encode
      • decode
    • inv_vect
      • encode
      • decode
    • net_addr
      • encode
      • decode
    • bitfield
      • encode
      • decode
  • High-level objects
    • Address
      • encode
      • decode
      • getRipe
      • getRandom
      • getDeterministic
    • Message
      • encode
      • decode
  • WIF
    • encode
    • decode
  • Parse PyBitmessage configs
    • decode keys.dat
    • decode knownnodes.dat
    • decode messages.dat

Feature matrix (Node.js only)

  • Network
    • Bootstrap
    • Connect to the network
    • Accept connections

Usage

var Address = require("bitmessage").Address;
Address.getRandom().then(function(addr) {
  Address.encode(addr).then(function(str) {
    console.log("New random Bitmessage address:", str);
    console.log("Private keys and parameters:", addr);
  });
});

License

bitmessage - JavaScript Bitmessage library

Written in 2014 by Kagami Hiiragi kagami@genshiken.org

To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.

You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.