Can anyone recommend any open source code for bitcoin wallet or any bitcoin applications or clients?
please posts links or samples of it.
thank you
Bitcoin Stack Exchange is a question and answer site for Bitcoin users, developers, and enthusiasts. It only takes a minute to sign up.
Sign up to join this communityCan anyone recommend any open source code for bitcoin wallet or any bitcoin applications or clients?
please posts links or samples of it.
thank you
Based on your ignorance of where to begin, I would strongly encourage you to use one of the existing wallets rather than trying to reinvent the wheel. That said, if you're just using this as an exercise to learn the code, poking around in the code can be a great way to learn. So here's what I can tell you about the wallets.
1) Bitcoin Armory is the most full featured wallet, in my opinion, at the cost of using the most resources from your computer. It's the one I use so I know the most about it out of all the wallets. It used to load the blockchain into memory, but as the blockchain grew rapidly, that approach made Armory so RAM intensive that it was essentially unusable for everyone but those with a LOT of RAM. If you want to use that old version, I'd recommend 8 GB+ RAM, the more you have, the better it'll run especially over the long haul since the blockchain is only going to get bigger.
The core developer of Armory, Alan, realized this approach was unsustainable for the majority of Armory users so he redesigned it so that it now makes a copy of the blockchain and uses that instead of loading the entire blockchain. The catch is, of course, that this means that using Armory as a full client means using 2X the size of the blockchain. At present day, the blockchain uses up 22.6 GB according to my computer, so double that for the amount of space on your hard drive Armory needs. It's a resource hog either way, but the tradeoff he made makes sense in my opinion since hard drive space is generally a lot more plentiful than RAM, and acquiring more if need be is also a lot cheaper.
Armory is written in python. I haven't looked at the code, but Alan has said on the bitcointalk forums that it's very well documented. It has some very useful features including: a deterministic wallet, meaning that one backup will last you forever, regardless of how many addresses you use; cold storage that's easy to use, which is for most people the biggest benefit of Armory; and for web developers, there is an Armory Daemon that you can run on your website to accept bitcoin payments. Unfortunately, it is no less resource intensive than the desktop version, and thus impractical unless you have essentially unlimited space on your web host.
2) Electrum is a lightweight bitcoin wallet that is also written in python. Unlike with Armory, Electrum stores the full blockchain on servers that you access via the client / server model. This means that Electrum uses no where near the amount of resources of Armory, it only requires that you host your wallet on your computer. Electrum also supports cold storage and wallets can be recovered using a seed, meaning that you do not need to perform regular backups, you just need to ensure that you never lose / forget that seed.
3) Multibit is also a lightweight wallet that is written in Java. It also operates on the client / server model like Electrum does. According to Multibit's FAQ, the portion of the blockchain that a user has to store is only about 25 MB, in other words, only containing your own transactions. If you're not familar with how Bitcoin works in general, I would encourage you to check out Multibit's FAQ as it explains not just Multibit but how Bitcoin in general works. Multibit's website does not advertise a deterministic wallet feature like Armory and Electrum do, so it may require regular backups like the original bitcoin wallet.
4) Hivewallet is also a lightweight wallet that is written in Java. Like Armory and Electrum, it is also deterministic. According to its website, all you have to do is backup the password and you're set. Hivewallet runs on OSX and Android Operating Systems.
5) Bitcoin core is the original bitcoin wallet. Unlike Armory and Electrum, it is not deterministic. Because of this, it is not recommended that you use this client to store your bitcoins because unlike the deterministic clients, it will require regular backups. It is written in C++.
If you still want to dive into the code, I'd encourage you to pick a wallet where you're already familiar with the programming language to start with to simplify the learning curve so you'll only have to learn that wallet's code instead of that wallet's code and that programming language.