Bitcoin Forum
December 04, 2024, 03:29:53 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: IPFS as blockchain storage.  (Read 1992 times)
Vitalik Kuliev (OP)
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
October 17, 2016, 03:59:45 PM
 #1

Bitcoin and other blockchain projects has its own data transmission protocols. Block completely downloaded with a single node. Block downloading can be accelerated through p2p protocols.

Are there any problems with using IPFS as block data storage?
Vitalik Kuliev (OP)
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
October 17, 2016, 04:13:13 PM
 #2

Any solution?
Yes. I propose to use IPFS.
https://ipfs.io/
TransaDox
Full Member
***
Offline Offline

Activity: 219
Merit: 102


View Profile
October 18, 2016, 12:18:48 AM
 #3

Problem.......Who has write permissions on the blocks?

A modified S/Kademlia solution is viable though.
Vitalik Kuliev (OP)
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
October 18, 2016, 05:16:16 AM
 #4

Problem.......Who has write permissions on the blocks?
Block header should be transmitted by http protocol. Block data can be transmitted with IPFS.
Only miner can create valid block header and write valid block data.
TransaDox
Full Member
***
Offline Offline

Activity: 219
Merit: 102


View Profile
October 18, 2016, 09:02:20 AM
 #5

Block header should be transmitted by http protocol. Block data can be transmitted with IPFS.
Only miner can create valid block header and write valid block data.
If you are using IPFS why do you need HTTP at all? What failing of IPFS is HTTP addressing in this use case?
How do you enforce that only a Miner can create (and delete/modify) a block. There is no mechanism in IPFS to ascertain who is and isn't a Miner. It's a file system with permissions just like a network share except the data is distributed.
Vitalik Kuliev (OP)
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
October 18, 2016, 09:31:15 AM
 #6

If you are using IPFS why do you need HTTP at all? What failing of IPFS is HTTP addressing in this use case?
IPFS is good for static content. HTTP required for transmission of dynamic content between nodes. Is it possible with IPFS get dynamic data from specific node (analogue http request)?

Quote
How do you enforce that only a Miner can create (and delete/modify) a block. There is no mechanism in IPFS to ascertain who is and isn't a Miner.
This mechanism is not needed. Everyone can create a block and write it in the IPFS. IPFS is used only for data storage. Each node selects a particular block because of its hash, complexity, etc.
buhrmi
Copper Member
Newbie
*
Offline Offline

Activity: 25
Merit: 3


View Profile
October 18, 2016, 05:56:47 PM
 #7

I've actually started to work on this. Code here: http://github.com/buhrmi/hashgraph ... Blog post here: http://buhrmi.de/post/150898157364/quest-for-consensus-part-2-virtual-consensus
Vitalik Kuliev (OP)
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
October 19, 2016, 02:38:31 PM
 #8

Sadly, the library is still in development.

That is another ipfs p2p library:
https://github.com/libp2p/libp2p
TransaDox
Full Member
***
Offline Offline

Activity: 219
Merit: 102


View Profile
October 19, 2016, 10:10:12 PM
 #9


Quote
  • Publicly accessible
  • Impossible to tamper with.
  • Replicated among several nodes with the ability for external nodes to join without manually reconfiguring the system
  • No central authority (no “main” node, or authorization server)
  • Free and efficient (no mining, no native currency)

S/Kademlia.

If one uses a quad instead of a triple then the block can be stored in the routing table.
The sorting algorithm needs slight tweaking since it favours persistent nodes rather than persistent data.
There is also the possibility of bootstrapping and transacting before the full chain has been downloaded and verified (with high a very confidence) and if one uses the distance function to link the merkle hashes to the node ID then the cached blocks act as pre-verified checkpoints.
Each node would probably only need about 1G of persistent data (size is dependent on hash and K bins).
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!