Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

I want to develop my own Bitcoin client in a language that is not yet supported. Are there any resources that can be referenced to help me, or any other future developer with the task, or is the source code for the official client (and other clients) the only thing to go by? Has anyone made some cohesive documentation of the Bitcoin protocol, that if followed would guarantee the finished client would be able to operate along with the existing clients?

share|improve this question
    
+1 for developing a bitcoin client in a new language –  H_7 Nov 1 '11 at 1:05
    
Thanks, the process has its ups and downs;). –  ThePiachu Nov 1 '11 at 1:10
add comment

2 Answers 2

up vote 10 down vote accepted

I don't believe anyone has published a detailed spec anywhere if that is what you are hoping for. There is some information on the bitcoin wiki, but your best option is to review the existing implementations.

Check out BitCoinJ (a from scratch bitcoin implementation in Java) and BitCoinSharp (a C# port of BitCoinJ). They are not full implementations yet, but they are very far along and can do most of the tasks of a bitcoin client.

No matter what language you plan to create your implementation in, looking at these is very valuable because they are very thoroughly commented and much easier to understand than the official C++ client.

share|improve this answer
add comment

You could investigate the work of Amir Taaki (genjix) from http://bitcoinconsultancy.com who wrote a separate bitcoin client.

The source code is available at https://gitorious.org/libbitcoin/libbitcoin and http://libbitcoin.org is the project site.

He is super active and responsive on irc at #bitcoinconsultancy

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.