Factory Pattern
Define
1 | type BeverageType string |
Interface
1 | type Beverage interface { |
每天都比昨天進步一點
Define
1 | type BeverageType string |
Interface
1 | type Beverage interface { |
※ 定義 : 可以動態地為物件附加額外的職責。使用裝飾器來擴展功能比使用繼承更有彈性。
FunctionType 定義一個函數類型
1 | type FunctionType func(string) string |
Message 函數返回一個基本的消息
1 | func Message(name string) string { |
目的是為了降低資料的「重覆性」與避免「更新異常」的情況發生。
正規化層級 (每一層皆需符合前面層級的正規化) :
正規化步驟 :
層級 | 處理 |
---|---|
未經正規化資料表 | - |
↓ | 除去重複群 |
第一正規化 | - |
↓ | 除去部份相依 |
第二正規化 | - |
↓ | 除去遞移相依 |
第三正規化 | - |
目前透過 rollup 鏈 (Arbitrum, Optimism) 解決可擴充性問題,不過由於底層 Layer-1 鏈的設計架構導致仍然過於昂貴和緩慢,因此做出以下更新 :
※ 資料可用性抽樣 原理 : 當一個節點收到一個新的區塊時,它不會立即下載整個區塊,而是先隨機抽樣區塊中的一部分數據,然後它會詢問網絡中的其他節點來驗證這部分數據的有效性,如果網絡中的大多數節點都確認這些數據是有效的,那麼這個節點就可以確定整個區塊的數據是可用的,然後再下載和驗證整個區塊。這種技術可以防止”壞節點“發送包含無效或不完整數據的區塊,並且可以在不需要下載和驗證整個區塊的情況下快速確定區塊數據的可用性,從而提高了區塊鏈的效率和可擴展性。 (此技術主要用於 PoS)
檢視函數和純函數是在智能合約中執行操作時不需要支付 gas 費用的函數。檢視函數是唯讀的函數,不會對智能合約狀態進行更改,而純函數是不會讀取或更改智能合約狀態的函數。
在智能合約中使用迴圈會導致額外的 gas 費用。因此,盡可能避免使用迴圈。例如,可以使用 Solidity 的 map 和 array 類型來替代迴圈。
在智能合約中使用事件可以使資料在智能合約和外部應用程式之間傳遞,而不需要支付額外的 gas 費用。
在智能合約中儲存資料會導致額外的 gas 費用。因此,盡可能避免儲存不必要的資料。例如,可以使用檢視函數來返回計算結果,而不需要將結果儲存在智能合約中。
盡可能使用簡單的計算和演算法來減少 gas 費用。一些常見的最佳化技巧包括快取計算結果,避免使用昂貴的加密演算法,以及使用位運算子。
※ 在區塊鏈中,每個區塊的頂部都有一個雜湊值,該雜湊值基於所有包含在該區塊中的交易的 Merkle Tree 計算得出。因此,如果任何一個交易被修改,整個 Merkle Tree 的雜湊值都會改變,進而使得區塊頂部的雜湊值也隨之改變,從而提示節點數據的篡改。
總體而言,Merkle Tree 技術能夠有效地驗證大量交易數據的完整性,並且具有高度的安全性和效率。這也是區塊鏈技術能夠實現去中心化和可信任的重要基礎之一。
more >>在區塊鏈中,錢包地址和私鑰是成對存在的。錢包地址可以公開分享給他人,用於接收加密貨幣,而私鑰則是保密的,用於對加密貨幣進行簽章和控制。
錢包地址和私鑰的生成過程 :
工作量證明(Proof of Work,PoW) :
股權證明(Proof of Stake,PoS) :
權威證明(Proof of Authority,PoA) :
實用性證明(Proof of Useful Work,PoUW) :
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true