Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Chaoskampf on June 24, 2013, 12:10:24 AM



Title: Hosting Blockchain on the Cloud
Post by: Chaoskampf on June 24, 2013, 12:10:24 AM
I want to host the blockchain (bootstrap.dat) on the cloud and then point Raspberry Pi's (i.e. their bitcoin clients) to it. Can anyone help me out with this? Is this even possible?



Title: Re: Hosting Blockchain on the Cloud
Post by: jordan.dev on June 24, 2013, 12:44:14 AM
Blockchain as a service?

BAAS?

I think this could be useful with certain software entities (SaaS platforms, PaaS services) that are cloud-based services (Salesforce.com for example) that don't offer a great deal of raw storage space for binary data (using that as a euphemism for the BC) and don't have all the necessary tools to parse and handle the nuances of reading it either.



Title: Re: Hosting Blockchain on the Cloud
Post by: grue on June 24, 2013, 12:55:41 AM
I want to host the blockchain (bootstrap.dat) [...]
that's not the blockchain, it's only the genesis block.


Title: Re: Hosting Blockchain on the Cloud
Post by: jgarzik on June 24, 2013, 01:27:09 AM
I want to host the blockchain (bootstrap.dat) [...]
that's not the blockchain, it's only the genesis block.

Incorrect.  bootstrap.dat is several gigabytes in size, and comprises the vast majority of today's blockchain.

See this thread for more details:

    [ANN] Bitcoin blockchain data torrent
    https://bitcointalk.org/index.php?topic=145386.0



Title: Re: Hosting Blockchain on the Cloud
Post by: grue on June 24, 2013, 01:45:18 AM
that's not the blockchain, it's only the genesis block.

Incorrect.  bootstrap.dat is several gigabytes in size, and comprises the vast majority of today's blockchain.
[...]
Thanks for the correction, always appreciated. :)


Title: Re: Hosting Blockchain on the Cloud
Post by: Chaoskampf on June 24, 2013, 04:08:00 AM
I'm sorry if this is a stupid question, but can the client (bitcoind) run through remote interface with bootstrap.dat or does it require being in the bitcoin directory on the client's machine?



Title: Re: Hosting Blockchain on the Cloud
Post by: jgarzik on June 24, 2013, 04:55:43 AM
I'm sorry if this is a stupid question, but can the client (bitcoind) run through remote interface with bootstrap.dat or does it require being in the bitcoin directory on the client's machine?

bootstrap.dat must be in the bitcoin data directory, but this may be a symlink to another filesystem on a cloud drive.



Title: Re: Hosting Blockchain on the Cloud
Post by: strideynet on June 24, 2013, 06:01:17 AM
Brilliant idea step to making clients smaller. This is one if the ideas needed to put bitcoin pos systems into stores. You should take this idea forward perhaphs. However, on the server you need a client running to download the blocks as they come in.



Title: Re: Hosting Blockchain on the Cloud
Post by: Chaoskampf on June 24, 2013, 01:06:53 PM
I'm sorry if this is a stupid question, but can the client (bitcoind) run through remote interface with bootstrap.dat or does it require being in the bitcoin directory on the client's machine?

bootstrap.dat must be in the bitcoin data directory, but this may be a symlink to another filesystem on a cloud drive.



Thank you jgarzik, I really appreciate the help. You can probably already tell I'm new to the nitty gritty of the protocol. I have another question, so I hope you'll bear with me.  So if I symlink to the cloud drive, bootstrap.dat would update dynamically, right? Also, could the clients on the Pi act as the immediate nodes which it links to?


Title: Re: Hosting Blockchain on the Cloud
Post by: jgarzik on June 24, 2013, 02:23:04 PM
bootstrap.dat is only used the first time the client is run.  bootstrap.dat data is imported into the client's database, and is not needed after that.

Sadly, there is no facility for sharing the blockchain.



Title: Re: Hosting Blockchain on the Cloud
Post by: e4xit on June 24, 2013, 05:54:59 PM
Which directory do you put bootstrap.dat into before you open Bitcoin-QT?

Am I right in understanding that, if you have a fresh install of Bitcoin-QT, then put Bootstrap.dat in the right place, and simply open the client, it will see and use bootstrap.dat correctly as a one time only import?

Chaoskampf, perhaps you would be able to symlink to "blocks", "chainstate' and 'database' folders, in each of the clients' /application support/bitcoin (or equivalent) folder? Might be way off with this though   :-\


Title: Re: Hosting Blockchain on the Cloud
Post by: jgarzik on June 24, 2013, 06:47:36 PM
Which directory do you put bootstrap.dat into before you open Bitcoin-QT?

Am I right in understanding that, if you have a fresh install of Bitcoin-QT, then put Bootstrap.dat in the right place, and simply open the client, it will see and use bootstrap.dat correctly as a one time only import?

Chaoskampf, perhaps you would be able to symlink to "blocks", "chainstate' and 'database' folders, in each of the clients' /application support/bitcoin (or equivalent) folder? Might be way off with this though   :-\

The main point is that bitcoin clients do not share the raw blockchain data and leveldb database data at the filesystem level... because the whole point of bitcoin is to share the blockchain data at the client level :)  bitcoind is the cloud ;p


Title: Re: Hosting Blockchain on the Cloud
Post by: e4xit on June 24, 2013, 06:52:38 PM
jgarzjk, I would have to agree!

Perhaps the best solution would be to download and run bitcoin-QT, and then to run an instance of Armory over the top , which would let you manage multiple wallets at the same time...

Or is there another reason Chaoskampf wants to use multiple clients...?


Title: Re: Hosting Blockchain on the Cloud
Post by: mustyoshi on June 24, 2013, 07:05:42 PM
Blockchain as a Service sounds interesting...

You could offer "quick propagation" of transactions and what not...

Use a SSD to get maximum read speed for the blockchain, you could act as the blockchain for potentially hundreds or thousands of paying customers that pay you not only to lessen the load on their storage, but also to ensure their transactions makes it to the next block.

Once the blockchain hits 10GB, I can see a service like this becoming viable. You'd have to have pretty good internet to support the numerous connections and redundant transaction propagation. Even if you charged just a few cents a day, you'd only need maybe 10-20 subscribers to break even if you found cheap hosting, depending on how good EC2 is, you might be able to get away with the Small On demand instance that goes for .06$ an hour in N. Virgina. That would run you 43.2$ a month. Which is less than a hundred subscribers at .50$ a month. But if you haven't already blown the  free tier year, you could get away with that aswell.

EDIT: You could also offer "anti double spend" bullcrap, where you WON'T relay a transaction that uses the same inputs as one you already relayed. That would give your subscribers a perk, since you'd probably be a sizable node in the network.

I think I might try to do this. ;)