Bitcoin Forum
April 25, 2024, 03:30:36 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [RFD] BtcFn Question: Designing a 'generic transport layer' for bitcoin?  (Read 5861 times)
da2ce7 (OP)
Legendary
*
Offline Offline

Activity: 1222
Merit: 1016


Live and Let Live


View Profile
May 15, 2011, 01:33:10 PM
Last edit: May 17, 2011, 11:40:31 AM by da2ce7
 #1

The BtcFn (The Bitcoin Freenet Project) project is in the process of working on the API connecting to the bitcoin client to other transport layers / data back-ends.

These backed layers will be used to transmit various bitcoin data over different protocols,  such possible uses could be:
  • Program that saves and reads a copy of the block-chain from a file.  Say used to save the block-chain on a USB key-drive.
  • A radio station could transmit the block-chain over short-wave radio so that everyone in the world has access to it.  The same API could be used for a program to automatically import the block-chain updates in the Bitcoin software.
  • BtcTorrent, a simple application that takes advantage of the API and lib-torrent that allows new clients to quickly download the block chain.
  • The above mentioned bitcoin on freenet project, this project will allow clients to use bitcoin with freenet as a transport layer, for both transmission of the block chain, and transactions.
  • Traditional bitcoin transport layer application.  This application will implement the standard bitcoin p2p protocol, and will be used by default.

The API should be designed so that multiple applications can connect to the same bitcoin instance at the same time.   The API should be non-blocking and atomic in design... (either something works completely, or it fails completely).  Finally the API should have no access to any function that interacts with the wallet.

The goal is that every bitcoin implementation will implement this API, so any bitcoin implementation can use any transport implementation.  e.g. Bitcoinj could make use of the same Bitcoin p2p application as the mainline client.

Questions/Comments?

We will be working on the design on the bitcoin wiki: https://en.bitcoin.it/wiki/Bitcoin_Transport_Layer_API

One off NP-Hard.
"There should not be any signed int. If you've found a signed int somewhere, please tell me (within the next 25 years please) and I'll change it to unsigned int." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714015836
Hero Member
*
Offline Offline

Posts: 1714015836

View Profile Personal Message (Offline)

Ignore
1714015836
Reply with quote  #2

1714015836
Report to moderator
1714015836
Hero Member
*
Offline Offline

Posts: 1714015836

View Profile Personal Message (Offline)

Ignore
1714015836
Reply with quote  #2

1714015836
Report to moderator
da2ce7 (OP)
Legendary
*
Offline Offline

Activity: 1222
Merit: 1016


Live and Let Live


View Profile
May 15, 2011, 01:48:29 PM
 #2

More info on BtcFn can be found here: http://bitcointalk.org/index.php?topic=7181.0

One off NP-Hard.
da2ce7 (OP)
Legendary
*
Offline Offline

Activity: 1222
Merit: 1016


Live and Let Live


View Profile
May 17, 2011, 01:46:36 AM
 #3

here is a diagram of what I was thinking of:


One off NP-Hard.
da2ce7 (OP)
Legendary
*
Offline Offline

Activity: 1222
Merit: 1016


Live and Let Live


View Profile
June 03, 2011, 07:20:34 AM
 #4

We have been looking at lots of different ways of defining the Bitcoin Block/Tx IPC Protocol.

I think that using Google Protocol Buffers would be the most obvious protocol to define it with.

If anyone has professional protocol specification writing experience please contact me.. or pop into #btcfn

We have enough funds for some moderate compensation in bitcoin...  However this work is 50% charity.

One off NP-Hard.
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1024



View Profile
June 03, 2011, 08:05:31 AM
 #5

The BtcFn (The Bitcoin Freenet Project) project is in the process of working on the API connecting to the bitcoin client to other transport layers / data back-ends.

These backed layers will be used to transmit various bitcoin data over different protocols,  such possible uses could be:
  • Program that saves and reads a copy of the block-chain from a file.  Say used to save the block-chain on a USB key-drive.
  • A radio station could transmit the block-chain over short-wave radio so that everyone in the world has access to it.  The same API could be used for a program to automatically import the block-chain updates in the Bitcoin software.
  • BtcTorrent, a simple application that takes advantage of the API and lib-torrent that allows new clients to quickly download the block chain.
  • The above mentioned bitcoin on freenet project, this project will allow clients to use bitcoin with freenet as a transport layer, for both transmission of the block chain, and transactions.
  • Traditional bitcoin transport layer application.  This application will implement the standard bitcoin p2p protocol, and will be used by default.

The API should be designed so that multiple applications can connect to the same bitcoin instance at the same time.   The API should be non-blocking and atomic in design... (either something works completely, or it fails completely).  Finally the API should have no access to any function that interacts with the wallet.

The goal is that every bitcoin implementation will implement this API, so any bitcoin implementation can use any transport implementation.  e.g. Bitcoinj could make use of the same Bitcoin p2p application as the mainline client.

Questions/Comments?

We will be working on the design on the bitcoin wiki: https://en.bitcoin.it/wiki/Bitcoin_Transport_Layer_API

We already have a global system for moving arbitrary data over various media.  Even pigeons.

Oh, and the problem isn't so much in the downloading of the blocks as it is in the processing of them.  Each node must process each block.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
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!