Pages:
Author

Topic: Is there a remote, trustless bitcoin API that doesn't require local storage? - page 2. (Read 2623 times)

sr. member
Activity: 426
Merit: 250
And if you don't want to trust blockchain.info, you can always set up your own Abe server.

Abe server? What is that and how do I set one up?

https://en.bitcoin.it/wiki/Abe
legendary
Activity: 1358
Merit: 1003
Ron Gross
And if you don't want to trust blockchain.info, you can always set up your own Abe server.

Abe server? What is that and how do I set one up?
sr. member
Activity: 426
Merit: 250
I wonder if this is possible and the solution to your question but take a bitcoind in the conf make the max connections 0, then use the create raw tx (createrawtransaction), then use blockchain api to push it (http://blockchain.info/pushtx) this would be the only way to do it.

Interesting, didn't know of the blockchain tx transmission API. That might be an excellent answer.
I think bitcoinj will suffice, don't need a bitcoind for that (I'll be working in Java/Scala, so bitcoinj is a perfect fit).



If I recall correctly then Stratum was supposed to be this API. Did it ever take off?

Stratum is a mining protocol (http://mining.bitcoin.cz/stratum-mining)

Stratum is a proposal for an open source client-server "Overlay" protocol that enables thin clients (currently used by Electrum client).



There is also BCCAPI, the server backend to BitcoinSpinner.

Interesting, if the server was open source it would be a perfect fit.
I asked whether the server code can be open sourced.



If you don't mind including a headers-only blockchain (currently 23.7 MB) you can get pretty close with bitcoinj now that bloom filters are available. (Uses bitcoind v0.8.0rc1 + bitcoinj v0.7-SNAPSHOT).

You can:
1) connect to whichever bitcoinds you like.
2) use fastcatchup to 'topup' your headers only blockchain (very quick).
3) set up a bloom filter for whatever you are interested in (very small bandwidth, quick)
4) send tx as you like.


It is not exactly trustless as the bitcoinds could 'overfilter' your tx of interest but with judicious use of a PeerGroup I think you could get round that (if you want to be completely trustless you are going to end up with a bitcoind I think).

The code to do all this is in bitcoinj/ MultiBit already so you could just take it and use it. No development required.

Hmm, very interesting but I'm not sure this is sufficient.
I want to build a service that needs to do bitcoin tx, and I would want to architect it so it is as simple as possible.
The simplest architecture I can think of is having just a stateless set of web servers with a bitcoin client library (a-la BCCAIP). I want the servers to be able to start as fast as possible from zero previous data/state. While downloading 23.7 MB might be "almost instant", a pure stateless client library is even better.

I guess that out of the approaches above, perhaps the best one is:

1. Using blockchain.info for queries
2. Using bitcoinj to sign transactions
3. Using blockchain.info broadcast API to broadcast transactions

Blockchain.info is such a huge service that I can trust it to be reliable and secure - I can trust that it won't lie to me and its servers will be up 99.9% of the time.



And if you don't want to trust blockchain.info, you can always set up your own Abe server.
legendary
Activity: 1358
Merit: 1003
Ron Gross
I wonder if this is possible and the solution to your question but take a bitcoind in the conf make the max connections 0, then use the create raw tx (createrawtransaction), then use blockchain api to push it (http://blockchain.info/pushtx) this would be the only way to do it.

Interesting, didn't know of the blockchain tx transmission API. That might be an excellent answer.
I think bitcoinj will suffice, don't need a bitcoind for that (I'll be working in Java/Scala, so bitcoinj is a perfect fit).



If I recall correctly then Stratum was supposed to be this API. Did it ever take off?

Stratum is a mining protocol (http://mining.bitcoin.cz/stratum-mining)

Stratum is a proposal for an open source client-server "Overlay" protocol that enables thin clients (currently used by Electrum client).



There is also BCCAPI, the server backend to BitcoinSpinner.

Interesting, if the server was open source it would be a perfect fit.
I asked whether the server code can be open sourced.



If you don't mind including a headers-only blockchain (currently 23.7 MB) you can get pretty close with bitcoinj now that bloom filters are available. (Uses bitcoind v0.8.0rc1 + bitcoinj v0.7-SNAPSHOT).

You can:
1) connect to whichever bitcoinds you like.
2) use fastcatchup to 'topup' your headers only blockchain (very quick).
3) set up a bloom filter for whatever you are interested in (very small bandwidth, quick)
4) send tx as you like.


It is not exactly trustless as the bitcoinds could 'overfilter' your tx of interest but with judicious use of a PeerGroup I think you could get round that (if you want to be completely trustless you are going to end up with a bitcoind I think).

The code to do all this is in bitcoinj/ MultiBit already so you could just take it and use it. No development required.

Hmm, very interesting but I'm not sure this is sufficient.
I want to build a service that needs to do bitcoin tx, and I would want to architect it so it is as simple as possible.
The simplest architecture I can think of is having just a stateless set of web servers with a bitcoin client library (a-la BCCAIP). I want the servers to be able to start as fast as possible from zero previous data/state. While downloading 23.7 MB might be "almost instant", a pure stateless client library is even better.

I guess that out of the approaches above, perhaps the best one is:

1. Using blockchain.info for queries
2. Using bitcoinj to sign transactions
3. Using blockchain.info broadcast API to broadcast transactions

Blockchain.info is such a huge service that I can trust it to be reliable and secure - I can trust that it won't lie to me and its servers will be up 99.9% of the time.

legendary
Activity: 1708
Merit: 1066
There is also BCCAPI, the server backend to BitcoinSpinner.
legendary
Activity: 1708
Merit: 1066
FYI SPV is of course not the answer I'm looking for, I'm interested in a client API that can just turn on, not download anything, and work.

Hi ripper234,

It doesn't answer your exact question but I thought I would mention it anyhow.

If you don't mind including a headers-only blockchain (currently 23.7 MB) you can get pretty close with bitcoinj now that bloom filters are available. (Uses bitcoind v0.8.0rc1 + bitcoinj v0.7-SNAPSHOT).

You can:
1) connect to whichever bitcoinds you like.
2) use fastcatchup to 'topup' your headers only blockchain (very quick).
3) set up a bloom filter for whatever you are interested in (very small bandwidth, quick)
4) send tx as you like.


It is not exactly trustless as the bitcoinds could 'overfilter' your tx of interest but with judicious use of a PeerGroup I think you could get round that (if you want to be completely trustless you are going to end up with a bitcoind I think).

The code to do all this is in bitcoinj/ MultiBit already so you could just take it and use it. No development required.
legendary
Activity: 1358
Merit: 1003
Ron Gross
FYI SPV is of course not the answer I'm looking for, I'm interested in a client API that can just turn on, not download anything, and work.
legendary
Activity: 1358
Merit: 1003
Ron Gross
http://bitcoin.stackexchange.com/questions/7697/is-there-a-remote-trustless-bitconi-api

This question asks about how to work with bitcoin via an API without requiring a local blockchain. The only answer is about blockchain.info's JSON API, but it appears that unlike the web version of blockchain.info, the JSON API requires the account passwords to be sent to the server.

Is there another remote API that allows one to perform various bitcoin operations without compromising security - without sending private keys anywhere, but rather signing transactions locally?

If I recall correctly then Stratum was supposed to be this API. Did it ever take off?
Pages:
Jump to: