2014-12-17 12:08:42 +01:00
# bitmessage [![Build Status](https://travis-ci.org/bitchan/bitmessage.svg?branch=master)](https://travis-ci.org/bitchan/bitmessage)
2014-12-11 18:57:42 +01:00
2014-12-28 18:08:41 +01:00
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 the Proof of work and crypto is fully doable).
Public library API is currently in alpha stage, breaking changes are very likely to happen.
2014-12-28 17:59:57 +01:00
2014-12-30 19:30:12 +01:00
API documentation is available [here ](https://bitchan.github.io/bitmessage/docs/ ).
2014-12-30 18:00:28 +01:00
2014-12-28 17:59:57 +01:00
## References
2015-01-03 17:49:20 +01:00
* [Bitmessage wiki ](https://bitmessage.org/wiki/Main_Page )
2014-12-28 17:59:57 +01:00
* [Protocol specification ](https://bitmessage.org/wiki/Protocol_specification )
* [Whitepaper ](https://bitmessage.org/bitmessage.pdf )
## Feature matrix (both Browser and Node)
- [ ] crypto
- [x] SHA-512
- [x] SHA-256
- [x] RIPEMD-160
- [x] PRNG
- [x] ECC keys manipulation
- [x] ECDSA
- [ ] ECDH
- [ ] ECIES
- [ ] AES-256-CBC
- [ ] HMAC-SHA-256
2015-01-02 22:24:36 +01:00
- [ ] Common structures
2015-01-04 21:59:14 +01:00
- [x] message
2014-12-28 17:59:57 +01:00
- [x] var_int
2015-01-02 15:27:03 +01:00
- [x] var_str
- [x] var_int_list
2014-12-28 17:59:57 +01:00
- [ ] net_addr
2015-01-02 22:24:36 +01:00
- [ ] encrypted
2015-01-04 21:59:14 +01:00
- [x] message encodings
2015-01-05 00:40:52 +01:00
- [x] service features
- [x] pubkey features
2015-01-02 22:24:36 +01:00
- [ ] Message types
- [ ] version
- [ ] verack
- [ ] addr
- [ ] inv
- [ ] getdata
2015-01-02 22:45:56 +01:00
- [ ] error
2015-01-02 22:24:36 +01:00
- [ ] object
- [ ] Object types
- [ ] getpubkey
- [ ] pubkey
- [ ] msg
- [ ] broadcast
- [x] WIF
- [ ] POW
- [ ] High-level classes
2014-12-28 17:59:57 +01:00
- [ ] Address
- [x] encode
- [x] decode
- [x] getRipe
2014-12-29 23:16:51 +01:00
- [x] fromRandom
- [ ] fromPassphrase
2014-12-28 17:59:57 +01:00
- [ ] Message
2015-01-02 22:24:36 +01:00
- [ ] encrypt
- [ ] decrypt
2014-12-28 17:59:57 +01:00
- [ ] Parse PyBitmessage configs
2015-01-02 22:56:54 +01:00
- [ ] keys.dat
- [ ] knownnodes.dat
- [ ] messages.dat
2014-12-28 17:59:57 +01:00
2014-12-28 18:08:41 +01:00
## Feature matrix (Node.js only)
2014-12-28 17:59:57 +01:00
- [ ] Network
- [ ] Bootstrap
- [ ] Connect to the network
- [ ] Accept connections
2014-12-11 18:57:42 +01:00
2014-12-13 19:59:48 +01:00
## Usage
```js
2015-01-03 15:52:27 +01:00
// Generate a new random Bitmessage identity.
2014-12-28 17:59:57 +01:00
var Address = require("bitmessage").Address;
2015-01-03 15:52:27 +01:00
var addr = Address.fromRandom();
console.log("New random Bitmessage address:", addr.encode());
2014-12-13 19:59:48 +01:00
```
2014-12-11 18:57:42 +01:00
## 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 / > .