jollen.org

Embedded Linux R&D

Jollen 網路學院 2014 !!

Embedded Linux 與 Android 技術分享與研究網站。

這是一個 Jollen 的分享平臺,這裡有一些 embedded Linux、Linux device driver 與 Linux kernel 的教學文件,也有一些個人想法的分享,都在我的 Blog 裡。

Jollen 的 Linux training 課程領域:Linux kernel、Linux device driver、cross toolchains、root filesystem build-up、ARM9/PowerPC hardware bring-up (U-Boot)。

Jollen's BlogEmbedded Linux/Android 教育訓練

February 16, 2017: Blockchain Developer - 快速認識 Proof-of-Stake

除了 Proof-of-Work(PoW)外,還有其它「形成共識」的做法嗎?除了 Proof-of-Work 外,還有一種稱之為 Proof-of-Stake(PoS)的共識系統... 本文章採用 Markdown 語法撰寫,若無法完整閱讀全文,請點擊這裡。 # Blockchain Developer - 快速認識 Proof-of-Stake 前一篇文章提到的 Proof-of-Work 是利用「運算」的方式來取得「共識」。除了 Proof-of-Work(PoW)外,還有其它「形成共識」的做法嗎?除了 Proof-of-Work 外,還有一種稱之為 Proof-of-Stake(PoS)的共識系統。不像 PoW 是以運算做為基礎,PoS 以「權益」做為基礎,來決定挖礦的難度。 除了 PoW 與 PoS 外,還有其它不同的共識系統: * PBFT[1] (Practical Byzantine Fault Tolerance - 拜占庭容錯算法) * Paxos /...(more)

December 9, 2016: Blockchain Developer - 簡單易懂的 Memory-Hard Function

Bitcoin mining 演算法,就是使用傳統的 SHA-256 函數,而 SHA-256 的優點,也好就是它的一個缺點... 本文章採用 Markdown 語法撰寫,若無法完整閱讀全文,請點擊這裡。 # Blockchain Developer - 簡單易懂的 Memory-Hard Function SHA-256 函數是傳統的 hash 演算法,但是應用在區塊鏈系統時,有一個缺點。Bitcoin mining 演算法,就是使用傳統的 SHA-256 函數,而 SHA-256 的優點,也好就是它的一個缺點。 ## SHA-256 的問題 為了提升 SHA-256 的計算速度,工程師會利用行平行處理(parallelism)的技術。利用平行運算,大幅提升 SHA-256 的運算速度,這樣做不是很好嗎? 然而,這就是一個問題了。簡單來說,一個能平行化的演算法,就能使用硬體來做加速,例如:使用 GPU、FPGA 或是 ASIC。這裡就是「弊端」所在了。從 Proof-of-Work...(more)

December 6, 2016: Blockchain Developer - 簡單易懂的 Mining 演算法設計

假設表 1 是「最後一個 Block」內容,根據先前教學的介紹,要如何挖出新區塊呢... 本文章採用 Markdown 語法撰寫,若無法完整閱讀全文,請點擊這裡。 # 簡單易懂的 Mining 演算法設計 ## Mining 演算法初體驗 表 1 是截至目前為止,範例所設計的 Block 資料結構。假設表 1 是「最後一個 Block」內容,根據先前教學的介紹,要如何挖出新區塊呢? |欄位 |範例 |用途說明 | |--------|--------|--------| |hash |dd0e2b79d79be0dfca96b4ad9ac85600097506f06f52bb74f769e02fcc66dec6 |Block Hash | |previousHash |0000000000000000000000000000000000000000000000000000000000000000 |前一個 Block 的 Hash 值 |...(more)

December 5, 2016: Blockchain Developer - 為什麼要挖礦?

交易(transaction)確認後的資訊以 Merkle tree 來做紀錄,所以就要有 Block 來儲存這個 Merkle tree... 本文章採用 Markdown 語法撰寫,若無法完整閱讀全文,請點擊這裡。 # 為什麼要 Mining? 交易(transaction)確認後的資訊以 Merkle tree 來做紀錄,所以就要有 Block 來儲存這個 Merkle tree。這個時候就需要有新的區塊。 在 Bitcoin 的生態中,mining(挖礦)的主要目的就是「產生新的區塊」,當區塊產生時,就會產生另一個「副作用」:新 Bitcoin 被產生出來。 簡單說,產生新的 Bitcoin 並不是挖礦的主要目的,這只是挖礦的副作用。挖礦的主要目的,是生產區塊來確認並紀錄新的交易資訊。本章的目標,在學習挖礦的基本知識,內容以簡單易懂為原則,並不是介紹如何重新實作 Bitcoin 的挖礦技術。但教學內容會以 Bitcoin 做為實例,輔助說明 mining 技術。 ## Difficulty 眾所皆知,Bitcoin 的挖礦難度是非常高的。這個意思是:產生新的...(more)

December 4, 2016: Blockchain Developer - 建立 Merkle Tree

Merkle tree 用來存放交易資訊(transactions),為了要討論更詳細的 Merkle tree 生成過程,假設現在有 2 筆交易正在等候「處理」... 本文章採用 Markdown 語法撰寫,若無法完整閱讀全文,請點擊這裡。 # Blockchain Developer - 建立 Merkle Tree ## Merkle Tree 的生成過程 Merkle tree 用來存放交易資訊(transactions),為了要討論更詳細的 Merkle tree 生成過程,假設現在有 2 筆交易正在等候「處理」。這 2 筆交易資訊,分別以 ```Tx0``` 與 ```Tx1``` 來表示。 ![圖 1 生成 Merkle...(more)

訂閱 jollen.org 電子報: 最新消息與專欄動態
Email:

Jollen 的 Embedded Linux 電子出版

Copyright(c) 2006,2007,2010,2011 www.jollen.org. All rights reserved.