如何使用JavaScript和Express創建區塊鏈 | 區塊鏈研究實驗室

火幣網(huobi.com)最新可用網址(點擊下圖直達註冊!)


火必交易所,曾经的火币交易所!

欧易OKX三大交易所,稳定好用!

币安全球第一大交易所!安全!


有人問我是否可以使用JavaScript來構建BlockChain應用程序,並且肯定有可用的資源來構建這樣的應用程序。本文中向大傢介紹其實這並沒有那麼復雜。這就像一個普通的項目,但是要遵循更多的規則。



什麼是區塊鏈?



當結合生成有關某些交易或一系列步驟的信息時,區塊鏈是一組在一起的區塊鏈。例如,每當您進行任何銀行存款或取款交易時,您都將根據您上一次存儲在銀行中的金額執行一項操作,當任何人在線上進行交易時,它都需要與上一個區塊有某種關系。
我們將如何理解這種情況並基於此創建應用程序,這是該塊將如何連接的演示。

與流程圖類似,我們將創建一個應用程序來演示相同的內容。

讓我們建立一個塊



首先,創建一個區塊鏈。首先
我們
需要擁有塊,因此讓我們創建一個名為Block的類。

在第一行,我們正在導入一個包來為我們處理加密。下面的命令將為我們安裝軟件包。
npm i crypto-js
在構造對象時,這裡有一些參數,即索引,時間戳,事務和foreignHash。

index 是為塊提供唯一的標識符,並通過索引為我們需要的任何數據結構提取塊。

timestamp 就是給特定的塊一個創建時間,因為不能更新該塊,所以我們不關心那個的updateAt時間戳。

transaction是需要阻止的實際數據。例如,員工總數或總數或發件人詳細信息等

precedingHash 如圖所示,該字段將負責上一個塊和當前塊之間的連接。

hash是將與一起工作的領域,precedingHash以確保我們處在正確的連接軌道上。

最後,有一個函數computeHash可以使用SHA256算法為我們計算哈希值。該算法將獲取所有數據,以確保我們生成的哈希碼的唯一性。
現在,我們創建瞭塊,讓我們轉到鏈上。

創建一條鏈



同樣,我們將創建一個鏈類,該鏈類將使用更多方法在其中調用該塊。這是整個類的代碼。

首先,我們創建瞭一個空的構造函數來為我們初始化一些字段,包括id [給標識符],name [給塊一個很酷的名字],blockchain [正在處理所有塊的實際字段],以及最後一個困難[獲得工作證明]。
在進入代碼的另一部分之前,我們將研究成因。對於任何區塊鏈項目,我們都需要一個創始來用第一個塊初始化鏈,因為第一個塊的行為類似於構建塊,並包含該塊其餘部分的第一個哈希,以用作先前的哈希。在這裡,我們從上一類創建瞭一個塊對象,並將其初始值作為參考。
然後,我們創建瞭一個create()包含少量參數的
name是通過API命名,
id是從API提供ID
並genesis賦予初始成因一個值。
那麼我們在obtainLatestBlock()給我們鏈中輸入的最後一個塊,這將幫助我們獲取最後一個塊的哈希,然後將其分配給鏈中的新元素。
最重要的方法是addNewBlock()在我們的鏈中添加一個新的塊,該方法將塊項目作為參數。首先,我們將獲取區塊鏈的最新哈希並將其添加到中precedingHash,然後創建一個新哈希並將其分配給哈希,我們可以跳過此步驟,因為我們已經將其添加到瞭Block對象的構造函數中。但是一旦這種方法運行,它將繼續將物品推入我們的區塊鏈生態系統。
最後checkChainValidity(),我們將不使用它,但有助於驗證該塊。
添加控制器和路由


我們將添加3條路線,
創建一個區塊鏈,



POST - /api/blockchain
得到區塊鏈,
GET - /api/blockchain



將新的孩子添加到鏈中
POST - /api/blockchain/append
讓我們為它創建一個控制器文件,



首先,我們將導入我們創建的兩個類Block和BlockChain。然後,我們創建瞭一個名為FlippingCoin的控制器,您可以根據需要命名它。但是,關鍵是我們需要關註3種方法:
createNewChain
appendNewChild
getChain
現在,為瞭簡單起見,我將跳過數據存儲部分。除瞭這3個之外,我們還必須驗證該方法以驗證鏈是否具有要創建的正確數據格式。
我們需要調用相應的方法來使事情工作。
如下所示添加路線



在這裡,我們確保將方法映射到正確的路線。


讓我們測試一下



讓我們轉到POST路線-/ api / blockchain,
這將根據我們在創世交易中傳遞的任何數據為我們創建一個新的區塊鏈。

讓我們轉到POST路線-/ api / blockchain / append,



在將交易數據傳遞到區塊鏈時,它將添加到鏈中。
最後,我們轉到路由GET-/ api / blockchain /檢查數據是否已更新。

作者:鏈三豐,來源:區塊鏈研究實驗室



返回列表页>>> 比特幣最新新聞