bitmessage
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.
API documentation is available here.
References
Feature matrix
- Crypto
- SHA-1
- SHA-256
- SHA-512
- RIPEMD-160
- PRNG
- ECC keys handling
- ECDSA
- ECIES
- Common structures
- message
- object
- var_int
- var_str
- var_int_list
- net_addr
- inv_vect
- encrypted
- service features
- pubkey features
- Message types
- version
- addr
- inv
- getdata
- error
- Object types
- getpubkey
- pubkey
- msg
- broadcast
- WIF
- POW
- High-level classes
- Address
- UserAgent
- PyBitmessage configs parsing
- keys.dat
- knownnodes.dat
- messages.dat
Usage
Address
var Address = Address; // Generate a new random Bitmessage identity.var addr1 = Address;console; // Or create it from passphrase.var addr2 = Address;console;
Structures
var structs = structs; var encoded = Buffer; var decoded1 = structsvar_str;console; // testvar decoded2 = structsvar_str;console; // test2var decoded3 = structsvar_int;console; // 3var decoded4 = structsvar_int_list;console; // [1, 2, 3]
Messages
var structs = structs;var messages = messages; // Simple encoding and decoding:var vermsg = messagesversion;console; // 1.1.1.1 // Low-level encoding and decoding:var addrPayload = messagesaddr;var addrmsg = structsmessage;var decoded = structsmessage;console; // addrvar addr = messagesaddr;console; // 2.2.2.2 // Encode with empty payload:var verackmsg = structsmessage;console; // verack
Networking
You will need to install bitmessage-transports library.
var messages = messages;var TcpTransport = TcpTransport; var tcp = dnsSeeds: "bootstrap8444.bitmessage.org" 8444; tcp; tcp;
License
bitmessage - JavaScript Bitmessage library
Written in 2014-2015 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/.