Bitcoin Forum
June 24, 2018, 04:06:30 AM *
News: Latest stable version of Bitcoin Core: 0.16.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Bitcoin Wallet in Java  (Read 6031 times)
Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 24, 2011, 05:37:51 PM
 #1

Is there any Java open source code for implementing a Bitcoin wallet? I would like to develop a server-side wallet.
1529813190
Hero Member
*
Offline Offline

Posts: 1529813190

View Profile Personal Message (Offline)

Ignore
1529813190
Reply with quote  #2

1529813190
Report to moderator
1529813190
Hero Member
*
Offline Offline

Posts: 1529813190

View Profile Personal Message (Offline)

Ignore
1529813190
Reply with quote  #2

1529813190
Report to moderator
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, which will follow the rules of the network no matter what miners do. Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1529813190
Hero Member
*
Offline Offline

Posts: 1529813190

View Profile Personal Message (Offline)

Ignore
1529813190
Reply with quote  #2

1529813190
Report to moderator
Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 24, 2011, 05:46:38 PM
 #2

I found a Bitcoin client implementation in Java called BitcoinJ: http://code.google.com/p/bitcoinj/

But I'm not sure it's a real wallet implementation. For example, it says: "It does not store a full copy of the block chain..." Isn't that needed in order to be able to store bitcoins?
TheKoziTwo
Legendary
*
Offline Offline

Activity: 1537
Merit: 1000



View Profile
May 24, 2011, 06:25:03 PM
 #3

Nope... you only need private/public keys to store your coins and they are stored in your wallet.dat file. The block chain is needed to verify spends etc.

Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 24, 2011, 06:53:24 PM
 #4

Nope... you only need private/public keys to store your coins and they are stored in your wallet.dat file. The block chain is needed to verify spends etc.

Ok, but if I want to be able to make actual bitcoin transactions directly from the server, is a full copy of the block chain needed then?
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1005


View Profile
May 24, 2011, 07:04:32 PM
 #5

No. I suggest you read Satoshis white paper to start with. BitcoinJ implements "simplified payment verification". It's a much less resource intensive approach but you rely on the strength of the network or a connection to a trusted node.

You can receive coins and send them just fine. But I ask that you be careful with BitCoinJ. It's still a very new codebase and isn't ready for primetime yet. The wallet formats will change, the APIs will change, there are bugs and missing features, etc. Only send around small quantities of money or use the testnet.
Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 24, 2011, 07:12:08 PM
 #6

No. I suggest you read Satoshis white paper to start with. BitcoinJ implements "simplified payment verification". It's a much less resource intensive approach but you rely on the strength of the network or a connection to a trusted node.

You can receive coins and send them just fine. But I ask that you be careful with BitCoinJ. It's still a very new codebase and isn't ready for primetime yet. The wallet formats will change, the APIs will change, there are bugs and missing features, etc. Only send around small quantities of money or use the testnet.

I have read the white paper briefly. Will take a closer look at it. I was thinking as an experiment to run BitCoinJ on Google App Engine, but that platform doesn't allow opening sockets (only port 80 url fetch allowed) if I remember correctly. I assume that could be a problem if the Bitcoin API relies on some special port number(s).
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1005


View Profile
May 24, 2011, 09:50:49 PM
 #7

Yes, it won't work on AppEngine. People who are hosting Bitcoin sites like the faucet on there are using RPC to a private server.
jimbobway
Legendary
*
Offline Offline

Activity: 1405
Merit: 1007



View Profile
May 24, 2011, 10:38:01 PM
 #8

No. I suggest you read Satoshis white paper to start with. BitcoinJ implements "simplified payment verification". It's a much less resource intensive approach but you rely on the strength of the network or a connection to a trusted node.

You can receive coins and send them just fine. But I ask that you be careful with BitCoinJ. It's still a very new codebase and isn't ready for primetime yet. The wallet formats will change, the APIs will change, there are bugs and missing features, etc. Only send around small quantities of money or use the testnet.

Mike, I was just wondering how long it will be before you feel confident in BitcoinJ such that you would recommend it for large transactions?
Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 24, 2011, 10:48:52 PM
 #9

Yes, it won't work on AppEngine. People who are hosting Bitcoin sites like the faucet on there are using RPC to a private server.

I saw somewhere that someone used Google App Engine but together with the Amazon cloud service. Maybe Amazon allows applications to open sockets on other ports than 80.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1005


View Profile
May 25, 2011, 06:56:07 AM
 #10

I don't know yet. Probably at least a couple of months. At the very least we need to implement the fee rules.

After my current chunk of work is done I'll be releasing 0.2, which has lots of new features over the last release. In the 0.3 release I'll do some more work towards stabilising the wallet format and some core interfaces.

The good news is it's not just me anymore. There's quite a nice developer community forming around the project, so progress will hopefully pick up a notch.
Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 25, 2011, 09:02:59 AM
 #11

I don't know yet. Probably at least a couple of months. At the very least we need to implement the fee rules.

After my current chunk of work is done I'll be releasing 0.2, which has lots of new features over the last release. In the 0.3 release I'll do some more work towards stabilising the wallet format and some core interfaces.

The good news is it's not just me anymore. There's quite a nice developer community forming around the project, so progress will hopefully pick up a notch.

Are you working on a tunneling via HTTP for the bitcoin transactions? That would be really cool.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1005


View Profile
May 25, 2011, 09:45:07 AM
 #12

I'm not. But feel free to contribute a patch to add an example of how to do it and improve support. The API for it already exists - you can create a transaction, then confirm it as sent later, so you don't have to submit via the P2P network.
Anders
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
May 25, 2011, 10:22:16 AM
 #13

I'm not. But feel free to contribute a patch to add an example of how to do it and improve support. The API for it already exists - you can create a transaction, then confirm it as sent later, so you don't have to submit via the P2P network.

One problem is that I only use Google App Engine at the moment. I could develop an extra API for that to run locally on my computer, but I would like to be able to run it on an external server. It would be nice if Google could develop a Bitcoin web service or something like that and run it on their infrastructure. Free of course!  Grin
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!