On 17 December 2012 10:19, Mike Hearn <mike@plan99.net> wrote:
Can we please drop the binary vs text issue? We have been around it
millions of times already. There are no compelling arguments to use
text here and several obvious problems with it. If you think you've
found a good argument to use JSON, please research protocol buffers
more thoroughly and see if it changes your mind.

Hi Mike, thanks you for the pointer.  I have read up on Protocol Buffers.

If the decision has already been made, then let's go with that, but if not perhaps I can offer some comments.

Looking at:

http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats

And -- "Canonically, Protocol Buffers are serialized into a binary wire format which is compact, forwards-compatible, backwards-compatible, but not self-describing"

I can see there are advantages in this approach in that you can send messages quickly and with low bandwidth.  However the non self describing data means that it's significantly harder to convert from one format to another.  Also references are important, and can be achieved in JSON.

Yet in my opinion there is great advantage to growing the bitcoin ecosystem to interoperate with the whole net, kind of creating a complete web economy.  The way to do this is to foster interoperability.  Having looked at and worked with standards for the past 5-10 years that is the great challenge.  Every system works in an island, and few talk to any others.  However, a market based economy grows exponentially more valuable with extra liquidity.
 
Inventing yet another format may lead to balkanization.  If history is a judge, the chances are high.  A self describing JSON format, however is much more likely to interop. 

I can understand the hesitation with JOSE.  However, if you get a moment, please look at :

http://payswarm.com/specs/source/web-keys/

This should provide some of the tools that you need.

As I said above, if the matter is closed, that's fine and thanks for taking the time to read. 

Can I at least propose to make it mandatory for the binary format to have a translation script to a self describing JSON format and back again.  I would love to see the bitcoin ecosystem become a major part of the infrastructure of the web itself (leading to even nice things like a proper web of trust), as well as an awesome P2P system in its own right.