日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【区块链】GO语言区块链项目——超级账本

發(fā)布時間:2024/2/28 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【区块链】GO语言区块链项目——超级账本 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

區(qū)塊鏈的應用:版權保護

區(qū)塊鏈用于版權保護的方式:

把文章內容存在第三方數(shù)據(jù)庫,用文章內容生成一個哈希,把哈希寫入到區(qū)塊鏈。

取數(shù)據(jù)的時候(需要溯源的時候),去區(qū)塊鏈把哈希值取下來,然后用哈希尋址找到所對應的數(shù)據(jù),這樣把源數(shù)據(jù)取回來。

如何做到版權保護?這是法律層面的。

我們可以做數(shù)據(jù)對比,或者如果不做數(shù)據(jù)對比的話,直接提交,因為可以溯源,誰提交的早,版權就是誰的。


來看一個區(qū)塊鏈的Demo

簡單了解一下什么是哈希

https://anders.com/blockchain/block.html


當改變一個區(qū)塊中的值之后,后面所有的區(qū)塊都失效了。后面的區(qū)塊需要重新挖礦,才重新有效。

因此,如果想要修改其中一個區(qū)塊,需要花很高的成本。
分布式存儲:每個節(jié)點看做一個賬本,每個節(jié)點存儲的數(shù)據(jù)都是一樣的。假設一共有100個人,如果只改變其中一兩個人的數(shù)據(jù)是沒有用的,因為剩下的另外97個人還保存著數(shù)據(jù)的備份,這樣就保證了數(shù)據(jù)的安全性。

因此,想要攻擊一個區(qū)塊鏈,就要攻擊其51%以上的節(jié)點。代價相當高。

提問:是每一筆交易都產生一個區(qū)塊嗎?

回答:不是。比特幣的區(qū)塊,每10分鐘更新一次。一個區(qū)塊中包含很多筆交易。

每一次轉賬,都會產生一筆交易。但是,并不是每一步交易都會產生一個區(qū)塊。


簡單了解一下區(qū)塊鏈

https://blockchaindemo.io/

每一個區(qū)塊的組成如下圖:

Nounce表示在本區(qū)塊上剛好滿足區(qū)塊難度的隨機數(shù),挖礦就是尋找nounce值的過程。

模擬演示區(qū)塊鏈產生的過程
安裝完成后,直接輸入blockchain

輸入bc查看區(qū)塊

挖礦,添加一個新的區(qū)塊


現(xiàn)在,我們擁有兩個區(qū)塊。可以看到,后一個區(qū)塊中包含前一個區(qū)塊的哈希值。

挖礦的時候存在競爭的問題。

當一個人挖礦成功之后,會給所有的節(jié)點發(fā)送一個廣播。其余節(jié)點接收到廣播之后,會驗證新產生的數(shù)據(jù)正不正確,如果正確,就把新的數(shù)據(jù)放進下一個區(qū)塊當中。

猜數(shù)字的人就是礦工。猜數(shù)字的過程就是找隨機數(shù)。

現(xiàn)在我們遇到的問題是,假設100人參與。a,b兩個人幾乎同時猜中這個數(shù)字,一部分人在驗證a的結果,另一部分人在驗證b的結果,于是產生了分叉。

如果過了一段時間,a又挖出了新的區(qū)塊,那么a的鏈會延長,成為最長的鏈。


以太坊合約的開發(fā)

solidity寫好的類,在部署之后,會產生(new)一個真實的合約的實例對象。

下圖中,右上角可以選擇合約的地址。

  • 部署到公網(wǎng)Main Ethereun Network需要花錢,開發(fā)的過程中沒有必要部署到公鏈上。
  • 測試網(wǎng)絡Kovan Test Net的原理和公網(wǎng)是一樣的。開發(fā)的過程中,有很多渠道可以獲取到測試幣,用于測試。開發(fā)成功、能夠使用之后,可以部署到公網(wǎng)。

切換網(wǎng)絡之后,就可以部署合約了。

合約的地址,從面向對象的角度來講,相當于是存儲空間的地址。

有了地址之后,前端可以通過web3.js提供的API,獲取合約的實例對象。

下面我們來部署一個簡單的和約。

點擊Create之后,會詢問是否確認支付。點擊Submit。
提交成功之后,返回給你一個實例的地址

如果想要在web前端操作這個和約中的內容,需要通過這個地址,找到你的和約。

點擊查看區(qū)塊的相關信息,包括:
看到如下信息

  • 其中,Input Data是將源碼轉化為十六進制之后的結果。
  • 可以這樣理解:向區(qū)塊鏈上部署和約的過程就是一個交易。
  • 寫入數(shù)據(jù)是交易(因為需要礦工驗證、需要區(qū)塊鏈的存儲空間,因此需要花手續(xù)費)
  • 取數(shù)據(jù)不是交易,不需要手續(xù)費。

私有鏈

私有鏈,可以部署在私有網(wǎng)絡中(局域網(wǎng)),可以在自己的局域網(wǎng)中進行測試。開發(fā)測試完成之后,在提交到公鏈。

如何搭建私有鏈?

一種理解是,聯(lián)盟鏈和私有鏈都可以看作是私有鏈。當部署一個和約的時候,是真的需要每一臺電腦執(zhí)行挖礦的命令。剛才在測試鏈上部署的時候,是確實有人在挖礦,有節(jié)點在做驗證。在自己的私有鏈上部署和約的時候,就需要自己執(zhí)行挖礦命令了。

也可以搭建一個以太坊的聯(lián)盟鏈。

什么是聯(lián)盟鏈?

比如一共100家銀行,其中10家銀行獨立建立了聯(lián)盟鏈,所有人都可以訪問聯(lián)盟鏈中的數(shù)據(jù),但是要確認聯(lián)盟鏈的數(shù)據(jù)是否有效,僅由著10家銀行來確定。

關于公鏈

公鏈的應用場景,大部分還是代幣。實際上,一般的企業(yè)級的產品,都不算真正的“去中心化”,而是“去中介”,應該說是半去中心化。或者是使用聯(lián)盟鏈。而且,如果一個公司開發(fā)一個產品,這個公司也一定不希望這個產品是完全去中心化的。

超級賬本

我們要講的超級賬本,就屬于聯(lián)盟鏈。聯(lián)盟鏈可以被簡單的理解為私鏈。


超級賬本Hyperledger白皮書

Fabric是自己建一個網(wǎng)絡,建成的網(wǎng)絡是自己的私有鏈(聯(lián)盟鏈)。

在超級賬本中,我們用Go語言,或者Java語言,來創(chuàng)建類。

在比賽中,用超級賬本開發(fā)產品的相對來說比較多。以太坊因為需要花費gas,因此成本有些大。

總結

以上是生活随笔為你收集整理的【区块链】GO语言区块链项目——超级账本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。