主頁 > 區塊鏈 > WDK第七周_基于Fabric的區塊鏈系統開發

WDK第七周_基于Fabric的區塊鏈系統開發

2021-10-24 07:25:19 區塊鏈

文章目錄

  • 摘要
  • 一、Fabric環境搭建
    • 1.1 安裝docker
    • 1.2 安裝go
    • 1.3 安裝Node.js
    • 1.4 部署hyperledger Fabric
  • 二、Fabric的概念
    • 2.1 邏輯架構
    • 2.2 Fabric基礎概念
    • 2.3、Fabric交易流程
  • 三、基于Fabric的區塊鏈系統開發(未完)
  • 總結

摘要

位元幣和以太坊都是公鏈,鏈中存盤的資料任何人都可查詢,不適合用來做對隱私有較高要求的企業開發,且其都用了作業量證明機制,能耗成本很高,資料存盤效率低(尤其是位元幣,大約每10分鐘生成一個新塊),Fabric引入了證書頒發機構和通道的概念,使得不被授權的用戶無法訪問鏈中資料,保證了資料的隱私性,Fabric還采用背書策略代替了作業量證明機制,在保證資料安全的同時,消除了"挖礦"的能耗,提高了存盤效率,本文基于Fabric進行區塊鏈的系統開發,詳述了在linux作業系統(Unbuntu)上Fabric環境的搭建、Fabric的基本概念、用Fabric開發區塊鏈系統(未完),
在總結處細述了Fabric的一個交易提案是如何一步步部署到區塊鏈上的,


一、Fabric環境搭建

1. 官方幫助檔案:https://hyperledger-fabric.readthedocs.io/en/release-1.2/ 
2. 安裝 cURL( https://curl.haxx.se/download.html ), curl --version 查詢版本
3. 安裝docker, docker --version 查詢版本
4. 安裝docker-compose, docker-compose --version 查詢版本
5. 安裝 go 語言環境, go version 查詢版本
6. 安裝node.js, node -v 查詢版本
7. Python 版本要求為 2.7, python --version 查詢版本

1.1 安裝docker

  1. 基礎軟體安裝
# 安裝基本軟體 
$ sudo apt-get update 
$ sudo apt-get install apt-transport-https ca-certificates curl git software- properties-common lrzsz -y
  1. 添加阿里的docker鏡像倉庫
# 添加阿里的docker鏡像倉庫 
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker- ce/linux/ubuntu $(lsb_release -cs) stable" 
# 更新軟體源 
$ sudo apt-get update
  1. 安裝docker
# 安裝docker 
$ sudo apt-get install docker-ce -y
# 查看安裝的docker版本 
$ docker version 
# 當前用戶直接操作docker時, 權限不夠, 
需要做下面的第4步操作
  1. 將當前用戶添加到docker組
# 將用戶加入該 group 內,然后退出并重新登錄就生效啦, $ sudo gpasswd -a ${USER} docker 
# 重啟docker服務 
$ systemctl restart docker 
# 當前用戶切換到docker群組 
$ newgrp - docker 
$ docker version 

1.2 安裝go

下載地址:
https://golang.org/dl/ - 翻墻 https://studygolang.com/dl - 國內鏡像源

如果沒有進行安裝包下載, 可直接使用如下命令(目前最新版本):

# 1. 使用wget工具下載安裝包 
$ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz 
# 2. 解壓tar包到/usr/local 
$ sudo tar zxvf go1.11.linux-amd64.tar.gz -C /usr/local 
# 3. 創建Go目錄 
$ mkdir $HOME/go 
# 4. 用vi打開~./bashrc,配置環境變數 
$ vim ~/.bashrc 
# 5. 增加下面的環境變數,保存退出 
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 
# 6. 使環境變數立即生效, 一些命令二選一 
$ source ~/.bashrc $ . ~/.bashrc 
# 7. 檢測go是否安裝好 
$ go version

1.3 安裝Node.js

#安裝包
sudo apt-get install nodejs

1.4 部署hyperledger Fabric

  1. 下載并執行fabric的引導腳本bootstrap.sh
# 創建放置的目錄,然后進入該目錄,用curl下載腳本, 
$ cd ~ # 這里在家目錄下創建放置目錄 
$ mkdir hyperledger-fabric 
# 創建放置目錄 
$ cd hyperledger-fabric

#不翻墻的安裝命令
$ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.2.0 1.2.0 0.4.10

運行./bash.sh up出現 "Error: error getting endorser client for channel: endorser client failed to connect to peer0 "時,.

二、Fabric的概念

2.1 邏輯架構

在這里插入圖片描述
身份管理 (Fabric中的“賬戶”體系.)

  • 成員服務
    • 注冊登錄和屬性證書:首先用戶填寫資訊(身份資訊等)生成證書明文F發送注冊請求,證書頒發機構CA對明文進行摘要(進行一次hash運算)得到h1,CA用自己的私鑰對h1進行加密得到密文F ',驗證證書時,用CA公鑰對F '解密得到h2,比較h2是否等于h1,(Hyperledger Fabric注冊及CA證書頒發.)

賬本管理

  • 區塊鏈:區塊鏈中存盤著所有的交易記錄,
  • 世界狀態:根據區塊鏈中的交易記錄得到的資料狀態,每當有一個新區塊生成時,世界狀態也隨之更新,每個節點的世界狀態都存在其節點的資料庫中,

交易管理

  • 客戶端發送某一型別提案,根據提案型別對應的背書測略,指定對應的背書節點peer,背書節點peer執行鏈碼,如果成功則生成實際賬本,當一定數量的背書節點認可該提案后,該提案通過排序節點廣播給所有節點,每個節點驗證并執行該提案,從而更新賬本,(深入理解Fabric的交易背書)

智能合約

  • 智能合約是用來進行業務邏輯操作的代碼,在docker容器中運行,和以太坊相比,Fabric的智能合約和底層賬本是分開的,升級鏈碼并不需要將賬本遷移到新的區塊鏈上,真正實作了邏輯與資料的分離,(Fabric的智能合約詳解)

2.2 Fabric基礎概念

(Fabric基本概念—很好的文章)
組織

  • fabric系統是通過組織來劃分的,每個組織內都有承擔不同功能的peer節點,同時每個組織都有自己對應的fabric-ca服務器,fabric系統中所有的組織共用一個orderer集群,fabric中的組織在現實世界中可以是一個公司、一個企業,或者一個協會,在fabric中,組織是承擔著資料信用責任的區塊鏈系統參與方,在設計一個fabric系統時,第一步就是要確定系統的參與方,然后從這些參與者中選出組織(生成對應的組織編號、域名、證書等),然后再確認組織的管理方式,組織的管理方式是指組織在遇到問題時的協作方式(如新組織的加入),

通道(Channel)

  • fabric的資料存盤結構被設計成多賬本體系,每個賬本在fabric中被稱為channel,每個channel中都有一個完全獨立的賬本,同一個channel中的所有peer節點都保存一份相同的資料,
    通道由成員(組織)、每個成員的錨節點、賬本、鏈碼應用程式和排序服務節點定義,網路上的每個交易都是在一個通道上執行的,在該通道上,每一方都必須經過身份驗證和授權才能在該通道上進行交易,加入通道的每一個peer都有其自己的身份,由成員服務提供者(MSP)提供,

賬本

  • Fabric有一個賬本子系統包含兩個組件:世界狀態和交易日志,世界狀態是代表當前資料的狀態,交易日志組件存放在資料庫中,它記錄了所有的交易記錄,世界狀態是根據交易日志得到的,
    世界狀態中有一個屬性——版本號,版本號從0開始,每當狀態更新時版本號就遞增,狀態更新時會首先檢查版本號,以確保當前狀態的版本與背書時的版本一致(避免并發更新),

節點(peer)
是區塊鏈的通信物體,是一個邏輯概念,不同型別的多個節點可以運行在同一個物理服務器上,節點主要有以下四種:

  1. 客戶端節點:客戶端必須連接到某一個peer節點或排序服務節點上才能與區塊鏈網路進行通信,客戶端向背書節點(endorser)提交交易提案(transaction proposal),當收集到足夠背書后,向排序服務節點廣播交易提案,進行排序,生成區塊,

  2. 普通節點peer:peer節點根據所承擔的角色又可以分為記賬節點(committer)、背書節點(endorser)、主節點(leader)和錨節點(anchor),

    1. 記賬節點:所有的peer節點都是記賬節點(committer),負責驗證排序服務節點區塊里的交易,維護狀態和總賬(Ledger)的副本,該節點會定期從orderer節點獲取包含交易的區塊,在對這些區塊進行核發驗證之后,會把這些區塊加入到區塊鏈中,committer節點無法通過組態檔配置,需要在當前客戶端或者命令列發起交易請求的時候手動指定相關的committer節點,記賬節點可以有多個,
    2. 背書節點:部分節點還會執行交易并對結果進行簽名背書,充當背書節點(endorser)的角色,背書節點是動態的角色,是與具體鏈碼系結的,每個鏈碼在實體化的時候都會設定背書策略,指定哪些節點對交易背書后交易才是有效的,并且只有應用程式向它發起交易背書請求的時候才是背書節點,其他時候都是普通的記賬節點,只負責驗證交易并記賬,背書節點也無法通過組態檔指定,而是由發起交易請求的客戶端指定,背書節點可以有多個,
    3. 錨節點:peer節點還可以是錨節點(anchor peer),錨節點主要負責代表組織和其他組織進行資訊交換,每個組織都有一個錨節點,錨節點對于組織來說非常重要,如果錨節點出現問題,當前組織就會與其他組織失去聯系,錨節點的配置資訊是在configtxgen模塊的組態檔configtx.yaml中配置的,錨節點只能有一個,
    4. 主節點:peer節點還可以是主節點(leader peer),能與排序服務節點通信,負責從排序服務節點獲取最新的區塊并在組織內部同步,主節點在整個組織中只能有一個,
  3. 排序服務節點orderer:接收包含背書簽名的交易,對未打包的交易進行排序生成區塊,廣播給peer節點,排序服務提供的是原子廣播,保證同一個鏈上的節點接收到相同的資訊,并且有相同的邏輯順序,

  4. CA節點:fabric1.0的證書頒發機構,由服務器和客戶端組成,CA節點接收客戶端的注冊申請,回傳注冊密碼用于用戶登錄,以便獲取身份證書,區塊鏈上的所有操作都需要驗證用戶身份,

區塊結構

  • 由三個部分組成,分別是區塊頭、區塊資料和區塊元資料,
  1. 區塊頭包含三個屬性(區塊號、當前區塊哈希、前一個區塊的哈希),當一個區塊被創建時寫入,
  2. 區塊資料包含的是排序后的交易串列,當區塊被ordering service創建時寫入,
  3. 區塊元資料包括區塊的寫入時間,以及區塊寫入者的證書、公鑰和簽名,

2.3、Fabric交易流程

前提假設是各節點已經提前頒發好證書,且已正常啟動,并加入已經創建好的通道,此流程介紹的是在已經實體化了的鏈碼通道上從發起一個呼叫交易到最終結賬的全程序,

  1. 提交交易提案
    應用程式(客戶端節點)構造好交易提案(交易提案中包含本次交易要呼叫的合約標識、合約方法和引數資訊以及客戶端簽名等)請求后,根據背書策略選擇背書節點執行交易提案并進行背書簽名,背書節點是鏈代碼中背書策略指定的節點,正常情況下背書節點執行后的結果是一致的,只有背書節點對結果的簽名不一樣,

  2. 模擬執行提案并進行背書
    背書節點在收到交易提案后會進行一些驗證,驗證通過后,背書節點會根據當前賬本資料模擬執行鏈碼中的業務邏輯并生成讀寫集(RwSet),模擬執行時不會更新賬本資料,然后背書節點對這些讀寫集進行簽名生成提案回應(proposal response),然后回傳給應用程式,

  3. 收集交易的背書(回傳模擬執行結果)
    應用程式收到proposal response后會對背書節點的簽名進行驗證(所有節點接收到任何訊息時都需要先驗證訊息的合法性),如果鏈碼只進行賬本查詢操作,應用程式只需要檢查查詢回應,并不會將交易提交給排序服務節點,如果鏈碼對賬本進行了invoke操作,則需要提交交易給排序服務進行賬本更新(提交前會判斷背書策略是否滿足),

  4. 構造交易請求并發送給排序服務節點
    應用程式接收到所有背書節點的簽名后,根據背書簽名呼叫SDK生成交易,并廣播給排序服務節點,其中生成交易的程序很簡單,只需要確認所有背書節點的執行結果完全一致,再將交易提案、提案回應和背書簽名打包生成交易即可,

  5. 排序服務節點對交易進行排序并生成區塊

    排序服務節點接收到網路中所有通道發出的交易資訊,讀取交易信封獲取通道名稱,按各個通道上交易的接收時間順序對交易資訊進行排序(多通道隔離),生成區塊,(在這個程序中,排序服務節點不會關心交易是否正確,只是負責排序和打包,交易的有效性在第7步進行驗證)

  6. 排序服務節點廣播區塊給主節點

    排序服務節點生成區塊后會廣播給通道上不同組織的主節點,

  7. 記賬節點驗證區塊內容并寫入到賬本

    所有的peer節點都是記賬節點,記錄的是節點已加入通道的賬本資料,記賬節點接收到的排序服務節點生成的區塊后,會驗證區塊交易的有效性,然后提交到本地賬本并產生一個生成區塊的事件,監聽區塊事件的應用程式會進行后續的處理,(如果接收的是配置區塊,則會更新快取的配置資訊)

  8. 主節點在組織內部同步最新的區塊

    如果交易是無效的,也會更新區塊,但不會更新世界狀態,(區塊存盤的是操作陳述句,而世界狀態存盤的是被處理的資料,

三、基于Fabric的區塊鏈系統開發(未完)

目前開發是準備先做一個簡單的系統,在該系統中有一個排序節點,2個組織,每個組織中分別有3個Peer節點和2個用戶,系統還未完成,就只展示目前的進度,不詳述了,
在這里插入圖片描述

總結

客戶端節點發送交易提案(proposal),根據該型別提案對應的背書策略,指定對應的背書節點,背書節點收到提案請求后,會根據當前賬本資料,模擬執行鏈碼中的業務邏輯,生成一個讀寫集(RwSet),然后背書節點對讀寫集進行簽名生成提案回應(proposal response)并回傳給客戶端節點,客戶端收到一定數量正的提案回應后,便會將該交易發送給排序節點,排序節點收到所有通道發出的交易資訊,按其發送時間對其進行排序(多通道隔離),生成區塊,將其廣播給各個通道的主節點,記賬節點對生成的區塊中的資料進行校驗,然后將其提交到本地賬本,更新區塊鏈賬本和世界狀態,
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333410.html

標籤:區塊鏈

上一篇:2021-10-22 期貨交易心得5

下一篇:IC的P2P層如何實作安全可擴展性

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more