在解釋擴容問題之前,必須要先解釋吞吐量的概念箩朴。假設你在火車站等車岗喉,每趟火車間隔一小時,只能做10個人炸庞。一旦火車滿載钱床,第十一名乘客只能等待下一趟。與這個做類比埠居,乘客代表交易查牌,比特幣或以太坊這樣常見的區(qū)塊鏈平臺每秒平均可以處理大約10次交易。
delos區(qū)塊鏈:給到你們的是1s最多打包1000筆交易并出塊滥壕。
也就是說1s內纸颜,如果有1000個乘客上車,那么都一起拉走绎橘,1001等候
那問題來了胁孙,為什么不可以同1個人分別給1000個人轉賬(1000次請求),只能1000個人分別給1000個人轉賬(1000次請求)金踪?
1浊洞、每次請求1個/transactions,會提交1筆交易胡岔,交易中包含[1個或多個私鑰法希,1個或多個操作]。
2靶瘸、delos會取第1個私鑰生成地址,向chain獲取nonce值浮声。
3老客、如果短時間內并發(fā)發(fā)送請求,并且第1個私鑰又相同润匙,那么向chain獲取的nonce相同。
4唉匾、nonce不允許相同孕讳,所以單用戶不允許并發(fā)。
nonce不允許相同的理由現(xiàn)下面網址:
http://www.reibang.com/p/e8e3820140e0
那么問題又來了巍膘,1個人可以同時給20個人轉賬(20個轉賬操作放到1筆交易厂财,只請求1次)是允許的。那1個人給1000個人轉賬(1000個轉賬操作放到1筆交易中峡懈,只請求1次)為什么不行璃饱?
因為塊的容量變大時,網絡傳輸就慢了肪康。
第一種最直接的方法是增加區(qū)塊大小荚恶。回到火車類比磷支,這意味著將火車的容量從10人增加到20人谒撼。這樣,火車就可以在特定時間內運送更多的乘客齐唆,減少車站的擁擠嗤栓。
比特幣當前的區(qū)塊大小1MB,提高到2MB可以使其每秒處理量增加一倍箍邮。區(qū)塊越大茉帅,每秒處理量就越高。
但這在實踐中是有問題的锭弊,假設你將塊大小從1MB增加到1GB堪澎,當你創(chuàng)建塊時,必須將其傳送給網絡中的其他人味滞,而網絡無法快速處理龐大的文件樱蛤。就像你使用電子郵件,當你上傳一個大文件時剑鞍,郵箱會不接受昨凡。這就是增加區(qū)塊大小的毛病,不能超越某個臨界點蚁署,所以這種解決方案的能力是有限的便脊。