Difference between revisions of "DigiSpeed"

From DigiByte Wiki
Jump to navigation Jump to search
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
== <span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:x-large;">'''How transaction speed&nbsp;increases?'''</span></span> ==
 
== <span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:x-large;">'''How transaction speed&nbsp;increases?'''</span></span> ==
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">DigiByte blockchain has 1MB max physical block size just like Bitcoin but 15 seconds block time and [https://github.com/digibyte/digibyte/blob/master/src/consensus/consensus.h 4x SegWit scale factor] enables superior scalability.</p>
+
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">DigiByte blockchain has 1MB max physical block size just like Bitcoin but 15 seconds block time and [https://github.com/digibyte/digibyte/blob/master/src/consensus/consensus.h 4x SegWit scale factor] enables superior on-chain scalability.</p>
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">'''Transaction capacity of the network depends on more than one variable such as miner fee, actual block time and SegWit usage intensity in the related block.'''</p>
+
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">'''Transaction capacity of the network depends on more than one variable such as actual block time, miner fee and SegWit usage intensity in the related block.'''</p>
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">If a single transaction is considered as 250 bytes, It can be assumed that the DigiByte block chain can handle between 266 and 1066 per second according to calculations below;</p>
+
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">If a single transaction is considered as 250 bytes, It can be assumed that the DigiByte blockchain can handle between 266 and 1066 transactions per second according to calculations below;</p>
 
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">1000000 bytes block size / 250 bytes tx size / 15 seconds block time = '''266 TPS''' with zero SegWit usage.</p>
 
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">1000000 bytes block size / 250 bytes tx size / 15 seconds block time = '''266 TPS''' with zero SegWit usage.</p>
 
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">4000000 bytes SegWit scaling / 250 bytes tx size / 15 seconds block time = '''1066 TPS''' with full SegWit usage.</span></span></p>
 
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">4000000 bytes SegWit scaling / 250 bytes tx size / 15 seconds block time = '''1066 TPS''' with full SegWit usage.</span></span></p>
  
 
== <span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:x-large;">'''Clarification for original DigiSpeed code'''</span></span> ==
 
== <span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:x-large;">'''Clarification for original DigiSpeed code'''</span></span> ==
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">Lets&nbsp;clear up some things the original block doubling code was introduced in December 2015 and plan at the point was that a block size doubling would occur every 2 years in December.&nbsp;Most of the marketing images we have for this were created from 2015-2017.&nbsp;During the build in for SegWit starting in 2017 and many of the numerous changes/releases that have been made over the past 2 years we broke the original block doubling code in several places.&nbsp;</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">Keep in mind that from January 2017 till now there has probably been 150,000 lines of code changed within DigiByte. The DigiByte blockchain is not a simple system.&nbsp;During all the updates in 2017/2018 and through early 2019 all core devs had planned on keeping the block doubling code intact but we knew we needed to fix some thing, renable &nbsp;various components and test them thuroughly test the doubling before the scheduled December 2019 doubling.&nbsp;After devs&nbsp;didn't get the doubling code fixed in a secure, tested way in the lead up to the 7.17.2 odocrypt release we posted to make sure it was clear to everyone we would not have a doubling in late 2019 with the current Odocrypt release.&nbsp;</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">Up until the Odocrypt release a couple months ago we had planned to fix the block size doubling code before the 2019 end of year doubling (December was original time). But do to time constraints and the fact we don’t need it we didn’t get it back in for this cycle.&nbsp;Testing and getting the Odocrypt release ready took more time than we expected. And we prioritized many over things and features such as dandelion and other performance tweaks.</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">We also chose to focus on DigiAssets.Because here is the deal, if we have no utility and reason to fill up blocks the total capacity is irrelevant. The 2017 doubling capacity did happen with SegWit and the way tx structures were altered &nbsp;if we get everyone on segwit it could be theorized at 4x increase still by 2019 end.</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">So up till two months go we had all planned on doubling but couldn’t get it working in latest release on time. And we did in fact work on it for a few days. We in no way are trying to mislead or lie to anyone.</span></span></p>
+
<p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">Lets&nbsp;clear up some things the original block doubling code was introduced in December 2015 and plan at the point was that a block size doubling would occur every 2 years in December.&nbsp;Most of the marketing images we have for this were created from 2015-2017.&nbsp;During the build in for SegWit starting in 2017 and many of the numerous changes/releases that have been made over the past 2 years we broke the original block doubling code in several places.&nbsp;</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">Keep in mind that from January 2017 till now there has probably been 150,000 lines of code changed within DigiByte. The DigiByte blockchain is not a simple system.&nbsp;During all the updates in 2017/2018 and through early 2019 all core devs had planned on keeping the block doubling code intact but we knew we needed to fix some thing, renable &nbsp;various components and test them thuroughly test the doubling before the scheduled December 2019 doubling.&nbsp;After devs&nbsp;didn't get the doubling code fixed in a secure, tested way in the lead up to the 7.17.2 odocrypt release we posted to make sure it was clear to everyone we would not have a doubling in late 2019 with the current Odocrypt release.&nbsp;</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">Up until the Odocrypt release a couple months ago we had planned to fix the block size doubling code before the 2019 end of year doubling (December was original time). But do to time constraints and the fact we don’t need it we didn’t get it back in for this cycle.&nbsp;Testing and getting the Odocrypt release ready took more time than we expected. And we prioritized many over things and features such as dandelion and other performance tweaks.</span></span></p> <p style="text-align: justify;"><span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:medium;">We also chose to focus on DigiAssets.Because here is the deal, if we have no utility and reason to fill up blocks the total capacity is irrelevant. The 2017 doubling capacity did happen with SegWit and the way tx structures were altered &nbsp;if we get everyone on segwit it could be theorized at 4x increase still by 2019 end.</span></span></p>

Revision as of 13:43, 9 May 2020

How and Why DigiSpeed was introduced.

Activated in December 2015 this was a hard fork that focused on making the DigiByte transaction speeds faster.
Block time was reduced by 50% from 30 seconds to 15 seconds that made it 40x faster than Bitcoin (10 min blocks vs 15 sec blocks). And new block propagation code was added based on Microsoft Research.

How transaction speed increases?

DigiByte blockchain has 1MB max physical block size just like Bitcoin but 15 seconds block time and 4x SegWit scale factor enables superior on-chain scalability.

Transaction capacity of the network depends on more than one variable such as actual block time, miner fee and SegWit usage intensity in the related block.

If a single transaction is considered as 250 bytes, It can be assumed that the DigiByte blockchain can handle between 266 and 1066 transactions per second according to calculations below;

1000000 bytes block size / 250 bytes tx size / 15 seconds block time = 266 TPS with zero SegWit usage.

4000000 bytes SegWit scaling / 250 bytes tx size / 15 seconds block time = 1066 TPS with full SegWit usage.

Clarification for original DigiSpeed code

Lets clear up some things the original block doubling code was introduced in December 2015 and plan at the point was that a block size doubling would occur every 2 years in December. Most of the marketing images we have for this were created from 2015-2017. During the build in for SegWit starting in 2017 and many of the numerous changes/releases that have been made over the past 2 years we broke the original block doubling code in several places. 

Keep in mind that from January 2017 till now there has probably been 150,000 lines of code changed within DigiByte. The DigiByte blockchain is not a simple system. During all the updates in 2017/2018 and through early 2019 all core devs had planned on keeping the block doubling code intact but we knew we needed to fix some thing, renable  various components and test them thuroughly test the doubling before the scheduled December 2019 doubling. After devs didn't get the doubling code fixed in a secure, tested way in the lead up to the 7.17.2 odocrypt release we posted to make sure it was clear to everyone we would not have a doubling in late 2019 with the current Odocrypt release. 

Up until the Odocrypt release a couple months ago we had planned to fix the block size doubling code before the 2019 end of year doubling (December was original time). But do to time constraints and the fact we don’t need it we didn’t get it back in for this cycle. Testing and getting the Odocrypt release ready took more time than we expected. And we prioritized many over things and features such as dandelion and other performance tweaks.

We also chose to focus on DigiAssets.Because here is the deal, if we have no utility and reason to fill up blocks the total capacity is irrelevant. The 2017 doubling capacity did happen with SegWit and the way tx structures were altered  if we get everyone on segwit it could be theorized at 4x increase still by 2019 end.