I think that bringing Bitmessage to smartphones is probably one of the best ways of getting this protocol into the public space.
However, don't take this the wrong way since I do like the concept, I feel as though a seperate service to send/receive/work messages detracts security, or at least some anonymity, from the network. Not that it could be the case, it's just how I feel.
I would still love to see this come to fruition though.
I'd like to see the offering of more options like local PoW on the user's device (I know ARM isn't that powerful, but it's not Bitcoin mining) or their remote machine with BM PoW software installed, such as a home server.
Also, will you be writing the client in HTML5?
Yes. The client will be using HTML5 technologies, such as a client side DB.
Also, I will be taking a lot of precautions to keep the service anonymous with the frog nodes. I'll write a blog post on this soon, and give you a link.
Thanks, I'll be looking forward to reading it, and congratulations on the funding.
One more question, since would your client is written in HTML5 (I'm assuming the PoW part will be separate or in asm.js) will it be making an appearance on the Firefox Marketplace once released?
I plan to release the client solely as a web app located on a site, rather than a browser app. This is for portability, so you can pick it up on your phone or another computer.
The proof of work is a sticky situation, and I might use asm.js or something of the like.
The exact 2 lines of code that do the PoW in PyBitmessage are
nonce += 1
trialValue, = unpack('>Q',hashlib.sha512(hashlib.sha512(pack('>Q',nonce) + initialHash).digest()).digest()[0:8])
Unfortunately for me, this could not use more language specific features.
It's unpacking as a big endian unsigned long long. I haven't found a library to do this, as the
node bufferpack and
jspack don't support this type. I believe it's a limitation in JavaScript itself.
The next part of this in a double binary sha512 hash. I CAN do this in JS with nodejs code ported to the browser. However, the binary hashes don't match the python ones as JS can't handle binary data like that. The hex hashes match, though.
I'll go into detail on this when the dev blog is up. If anyone has any suggestions on how to implement this, I'd appreciate it.
I'm not very knowledgeable when it comes to this sort of thing, but would it be possible for you to use the C++ library in JS through Emscripten?