2
When we can agree on a mempool sorting order, we can just confirm first n-transactions (or 80% of transactions) that are at least 10 minutes old. Then, we can transfer (broadcast) the block header and a hash to the set of all confirmed transactions.
Just consider this as an aggressive version of BIP152, compact blocks.
This kind of method will work for transactions of any size; both confirming 10 transactions and 1 million transactions are the same.
What's missing? Why are we not doing 'confirmation' like this?
For example, if we have 1000 transactions in a mempool (sorted), 900 transactions are at least 10 minutes old, and we're confirming the first 720 transactions.
This may not be a perfect or complete solution, but we just need to find,
- Sort order; fee, size, etc.
- Transaction age; say, 10 min
- Confirm size; say, confirm first 80%
Note: Sort order is based on f(trxn-meta-data; fee, input, output, etc.), transaction age is used as a filter. Another filter is first x% of the set.
1its up to the node to sort it in anyway he likes. Perhaps a sorting based on fee would make more sense to them. – abeikverdi – 2016-07-07T08:53:10.627
@abeikverdi I'm asking for sorting order consensus, and get rid of block size debates forever. – vi.su. – 2016-07-07T09:14:36.907
1What advantage do I get if everyones mempool is sorted based on a certain criteria? What does it have to do with block size limit? – abeikverdi – 2016-07-07T09:34:09.643
1By sorted you mean two nodes have the same transactions in mempool or you mean transactions are listed and sorted based on a factor? – abeikverdi – 2016-07-07T09:35:24.120
When all mempools are sorted, most likely all mempools are in sync with unconfirmed first n-transactions. This fact can be then be used to announce these transactions are confirmed, along with block header and a hash to all these newly confirmed transactions. – vi.su. – 2016-07-07T09:37:51.860
Idea is to get first n-transactions in every mempool the same, so that we can auto confirm first 1k, or 1M transactions without building and broadcasting blocks. – vi.su. – 2016-07-07T09:41:39.370
You made me confused with "sorted". First of all there is no may to make sure that everyone has received the broadcasted transaction, therefore always there are some transactions missing for each node. IBLT could help them to sync the mempool and stuff. But in general what your saying is basically what a blockchain is trying to do. We create the blockchain and all the proof of work and consensus to agree on the transactions that cant simply be synced. – abeikverdi – 2016-07-07T09:52:46.457
What happens if there are double spent in the list of first n transactions in mempool? – abeikverdi – 2016-07-07T09:53:44.900
1
it is not possible to have 'sorting order consensus' or 'mempool synced' because of https://en.wikipedia.org/wiki/CAP_theorem
– amaclin – 2016-07-07T12:16:26.283@amaclin interesting. I'll look into it. :) – vi.su. – 2016-07-07T14:09:32.327