How work with blocks? Maybe divide block to parallel blocks?
Each kind of block has only transactions with FROM or TO in range.
We have 10 nodes, 10 addresses: 0-9
We have 4 group of address:
0,1,2
3,4
5,6,7
8,9
and random 10 transactions:
1 send to 8 30 coins //BEFORE: 1 has 50, 8 has 50; AFTER: 1 has 20, 8 has 80
2 send to 0 20 coins //BEFORE: 2 has 50, 0 has 50; AFTER: 2 has 30, 0 has 70
0 send to 7 40 coins //BEFORE: 0 has 50 or 70, 7 has 50; AFTER: 0 has 30, 7 has 90
5 send to 9 10 coins //BEFORE: 5 has 50, 9 has 50, AFTER: 5 has 40, 9 has 60
9 send to 8 20 coins //BEFORE: 9 has 50 or 60, 8 has 80 or 50; AFTER: 9 has 40, 8 has 100
2 send to 7 10 coins //BEFORE: 2 has 50 or 30, 7 has 50 or 90; AFTER: 2 has 20, 7 has 100
3 send to 1 20 coins //BEFORE: 3 has 50, 1 has 50 or 20; AFTER: 3 has 40, 1 has 40
1 send to 7 10 coins //BEFORE: 1 has 40 or 50, 7 has 50 or 100; AFTER: 1 has 30, 7 has 110
0 send to 4 30 coins //BEFORE: 0 has 50 or 30, 4 has 50; AFTER: 0 has 0, 40 has 80
3 send to 7 20 coins //BEFORE: 3 has 50 or 40, 7 has 50 or 110 AFTER: 3 has 20, 7 has 130
We have 2*4 blocks with 10+(10-common 2) transactions:
parblock FROM or TO = 0,1,2
1 send to 8 30 coins //before 1 has 50, 8, AFTER 50, AFTER 1 has 20, 8 has 80
Tout(1)={-30} Tin(8)={???} -OK
2 send to 0 20 coins//before 2 has 50, 0 has 50 AFTER 2 has 30, 0 has 70
Tout(2)={-20} 0,Tin(0)={+20} -OK
0 send to 7 40 coins//before 0 has 70 or jeszcze 50, 7 has 50; AFTER 0 has 30, 7 has 90
Tout(0)={-40} 7,Tin(7)={???} -OK
2 wysłal 7 10 coins//before 2 has 50 lub 30,7 has 50 lub 90 PO 2 has 20, 7 has 100
Tout(2)={-20,-10} 7,Tin(7)={???} -OK
1 wysłal 7 10 coins//before 1 has 40 lub 50, 7 has 50 lub 100 PO 1 has 30, 7 has 110
Tout(1)={-30,-10} 7,Tin(7)={???} - OK
0 wysłal 4 30 coins//before 0 has 50 lub 30, 4 has 50, PO 0 has 0, 40 has 80
Tout(0)={-40,-30} Tin(4)={???} - OK
parblock not FROM but TO = 0,1,2
3 wysłal 1 20 coins//before 3 has 50,1 has 50 lub 20, PO 3 has 40, 1 has 40
Tout(3)={???} Tin(1)={+20} - not confirmed
parblock FROM or TO = 3,4
3 wysłal 1 20 coins//before 3 has 50,1 has 50 lub 20, PO 3 has 40, 1 has 40
Tout(3)={-20} Tin(1)={???} - OK
3 wysłal 7 20 coins//before 3 has 50 lub 40, 7 has 50 lub 110 PO 3 has 20, 7 has 130
Tout(3)={-20} Tin(7))={???} - OK
parblock not FROM but TO = 3,4
0 wysłal 4 30 coins//before 0 has 50 lub 30, 4 has 50, PO 0 has 0, 40 has 80
Tout(0)={???} Tin(4)={+40} - not confirmed
parblock FROM or TO = 5,6,7
5 send to 9 10 coins//before 5 has 50,9 has 50, AFTER 5 has 40, 9 has 60
Tout(5)={-10},Tin(9)={???} - OK
parblock not FROM but TO = 5,6,7
0 send to 7 40 coins//before 0 has 70 or jeszcze 50, 7 has 50; AFTER 0 has 30, 7 has 90
Tout(0)={???} 7,Tin(7)={+40} - not confirmed
2 wysłal 7 10 coins//before 2 has 50 lub 30,7 has 50 lub 90 PO 2 has 20, 7 has 100
Tout(2)={???} 7,Tin(7)={+40,+10} - not confirmed
1 wysłal 7 10 coins//before 1 has 40 lub 50, 7 has 50 lub 100 PO 1 has 30, 7 has 110
Tout(1)={???} 7,Tin(7)={???} - not confirmed
3 wysłal 7 20 coins//before 3 has 50 lub 40, 7 has 50 lub 110 PO 3 has 20, 7 has 130
Tout(3)={???} Tin(7))={+40,+10,+10,+20} - not confirmed
parblock FROM or TO = 8.9
9 wysłal 8 20 coins//before 9 has 50 lub 60, 8 has 80 lub 50, AFTER 9 has 40, 8 has 100 -
Tout(9)= {-20}, Tin(8)={+3-,+20} - OK
parblock not FROM but TO = 8.9
1 send to 8 30 coins //before 1 has 50, 8, AFTER 50, AFTER 1 has 20, 8 has 80
Tout(1)={???} Tin(8)={+30} - not confirmed
5 send to 9 10 coins//before 5 has 50,9 has 50, AFTER 5 has 40, 9 has 60
Tout(5)={???},Tin(9)={+10} - not confirmed
This verbose example show decomposition list of transactions to parallel blocks. We have 4 groups and 18 instead 40 summary transactions in all blocks