Bitcoin Forum
June 23, 2024, 02:08:25 PM *
News: Voting for pizza day contest
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Alternate cryptocurrencies / Altcoin Discussion / Re: How can I create a coin for a private network? on: June 04, 2014, 07:08:05 AM
in the standard bitcoin github tree there'a "qa" folder that contains some tests. In particular there's "wallet.sh" which tests basic block generation and wallet functionality in a local environment of 3 nodes. You can use that as a starting point setup for your private bitcoin network.
2  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: June 04, 2014, 06:59:40 AM
I can not ask this transaction from N1, because N1 already removed it from memory pool

As pointed out 5 times now ... this would require a change in protocol.

yes, the spec. needs to be changed. repeating my question from another reply - should I start a BIP if I want to implement this?

No.  From this thread it is very clear you lack the basic knowledge and logic skills necessary to implement a BIP.  I mean we just played a 14 post game of "who's on first" because you couldn't grasp the concept that in an changed protocol the protocol would be changed and thus referencing the current protocol would be pointless.

Of course that would be my opinion.

Assessment of a person's professional skills (positive or negative) is an offtopic for this thread. I guess you misread the replies, but this cannot be an excuse for throwing your negative emotions onto a technical discussion.

It is clear that implementation of proposed modifications will likely result in protocol modifications. What is not clear (to me) is:

1. are such changes welcome by the core team in general (provided that they meet coding guidelines, quality standards, etc) ?
2. Is there a process of BIP review/approval by the core team ?
3  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: June 03, 2014, 11:07:41 AM
Quote
could N1 keep this tx for some time after it's advertised in a block header?

N1 has this tx in block and *can* provide it of course.
But the current rules allows me to ask only mempool(wild) transactions, not confirmed in blocks.
At least we have to rewrite some other code for supporting this behavior:

Quote
https://en.bitcoin.it/wiki/Protocol_specification#getdata
getdata is used in response to inv, to retrieve the content of a specific object, and is usually sent after receiving an inv packet, after filtering known elements. It can be used to retrieve transactions, but only if they are in the memory pool or relay set - arbitrary access to transactions in the chain is not allowed to avoid having clients start to depend on nodes having full transaction indexes (which modern nodes do not).


yes, the spec. needs to be changed. repeating my question from another reply - should I start a BIP if I want to implement this?
4  Bitcoin / Bitcoin Discussion / Re: Ideas on inexpensive, portable laptop to use as Bitcoin Cold Storage? on: June 03, 2014, 11:00:13 AM
maybe a bit offtopic, but some time ago I was thinking of a cold wallet/general password storage based on an android phone with a camera (and working screen). communication (including possible wallet/password updates) solely via QR code exchange/on screen keyboard. i didn't find anything suitable, but should be pretty straightforward to implement.
5  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: June 03, 2014, 09:31:54 AM
Quote
The point is that most of the time, most of the full nodes know about 90%+ of the txs.

Yes. The problem is the rest 10%-.

Quote
If a node doesn't know about a particular tx it will request that from its peers.

OK, lets imagine. My node is connected to nodes N1, N2, N3... Nx
Once upon a time I receive "block template" from N1
There is a transaction in it which I do not know.
I can not ask this transaction from N1, because N1 already removed it from memory pool
And the other my peers also may not know about this tx or will reject/ignore my getdata packet.
So, I should drop "block template" and ask N1 for block itself.

This increases traffic (in some cases) and slows down block propagation.

This is not very rare scenario, I can prove it with my already working program (which checks for unknown transactions in incoming blocks)


could N1 keep this tx for some time after it's advertised in a block header? Also if the receiving node has already got block header it only needs the transactions, so in the worst case the overhead would be small (significantly less than the size of the header). Also we may consider sending shortened transaction hashes in the block header which would make the header even smaller and worst case less probable.
6  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: June 03, 2014, 09:22:56 AM
But the protocol layer can fix that. A block that is just header + coinbase + txid list would be pretty short.

Yes, this is how I thought this can be done. This looks like a straightforward self-contained feature that I could start working on. Is this a feature bitcoin core developers would be willing to accept into the main branch? Should I open a BIP?
7  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: June 03, 2014, 08:30:17 AM
~144 blocks

sorry, you're right of course. But still this is a considerable amount of time to wait.

Btw, is it my correct understanding that it is possible to build and send a valid transaction without having to wait for full wallet sync, provided that your tx inputs don't depend on the unknown part of the blockchain?
8  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: June 02, 2014, 11:17:09 AM
Block chain size is currently rate limited to about 1MB per 10 minutes, or about 13kbps. It is not at all clear that compressing this data will result in faster syncs, but if that is what interests you then by all means give it a shot.

1. If I sync once a day I need about 3 mins just to fetch the data (250 KiB/s channel, about 200 KiB block, 240 blocks).

2. As I undestand clients propagate new transactions through the network instantly and whenever there's a new block, there's a spike in the amount of data (which may well exceed 13 kpbs).

3. The new block will contain transactions previously propagated through the network, so some (all?) transactions get received by peers twice - when transaction is created, and as a part of a block. Is this correct?
9  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: May 30, 2014, 08:52:34 AM
Quote
The main time-expensive routine is verifying ECDSA signatures, not downloading.
But we can not (?) eliminate this step on every node.

Hmm... May be some checkpoints? Let's say we have bootstrap.dat & all index files up to the block on May,1,2014
And the client has hardcoded hash of this data.
So, new user have to download bootstrap&indexes, check hash and... do not verify all signatures from the beginning of bitcoin era

ECDSA checking may be expensive, but I open my wallet every few days and on every open I see considerable network traffic for couple of minutes (I'm on ADSL). I wouldn't mind halving the time. Also for bitcoin nodes with lots of down links this might be a bigger problem.
10  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: May 30, 2014, 08:40:38 AM
I don't think a common disk compression methods are efficient for blockchain. Efficient compression means understanding the underlying structure.

Speaking on cheap vs expensive - I think it's users time that's more expensive than processor time or disk space. We can significantly save time necessary to wait for another wallet sync, or for a new wallet to init.

Block chain data does not compress impressively on a global scale, but indices on addresses and tx hashes do.

Bits of Proof stores both the block chain data and supplementing indices in LevelDB and achieves high performance in retrieving transactions referring an arbitrary HD master key, that is why it powers the myTREZOR web wallet.

I am sure it could be further optimized with your ideas, so let me know if you'd like to discuss them in that scope.

Definitely I'm interested in this. I think optimization of network transmission and storage on portable/battery powered devices are major targets to consider. I agree with comments that disk space on PC is not an issue.
11  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: May 30, 2014, 08:28:08 AM
Quote
I disagree.
You will have benefits from compression big chunks of data (such as blk-files), not a small pieces (transactions in blocks)

I didn't say there's no benefit from compressing big chunks. However in this thread I'd like to study interest and requirements rather than benefits of a specific compression technique. I think it's pretty clear that disk compression is not a solution.
12  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: May 29, 2014, 10:07:43 PM
...also, this would be an optional feature anyway
13  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: May 29, 2014, 09:36:33 PM
I don't think a common disk compression methods are efficient for blockchain. Efficient compression means understanding the underlying structure.

Speaking on cheap vs expensive - I think it's users time that's more expensive than processor time or disk space. We can significantly save time necessary to wait for another wallet sync, or for a new wallet to init.
14  Bitcoin / Development & Technical Discussion / Re: (non-ultimate) blockchain compression? on: May 29, 2014, 11:47:08 AM
I didn't do a detailed study yet, but speaking of low hangin fruits, what about address dictionary, typical script patterns and database index compression?

Once there's a confirmed interest, I plan to start a detailed study and open a technical discussion. I'd also appreciate links to previous technical discussions (my googling skills apparently are not sufficient to find anything technical beside that "ultimate" thing, which I consider orthogonal to normal compression).
15  Bitcoin / Development & Technical Discussion / (non-ultimate) blockchain compression? on: May 29, 2014, 09:46:35 AM
Hi,

I'm a software engineer and I want to contribute to the bitcoin[d] development. I'm a data compression expert so I thought that a block compression library would be a good start.

I've read about the "ultimate" blockchain compression where lite nodes keep only relevant leaves of the merkle tree. However as I understand we are still far from having this implemented, also this will not help full nodes, nodes with lots of transactions and all those who needs to keep full blockchain. Therefore my vision is that blockchain compression whilst is not critical now, is a nice-to-have feature.

The library I'm thinking of would be usable for wallets and daemons, both for storage and transmission. The algorithms would require modest computational resources and be friendly to hardware implementation. My quick investigation shows that considerable compression ratios (like 50%) may be achievable.

Is this something worth doing?

Thanks!
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!