999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Solidity的低代碼以太坊微博系統的設計與實現

2023-10-02 11:41:22胡娟湯海林
電腦知識與技術 2023年24期
關鍵詞:智能用戶系統

胡娟,湯海林

(廣東白云學院大數據與計算機學院,廣東 廣州 510400)

0 引言

區塊鏈技術本質上是一種基于時間戳的防篡改數據庫,可以允許個人、公司、公共機構以及其他實體以同步、透明和去中心化的方式驗證交易和更新數據庫數據。這種創建和管理數據的新機制由于備具透明、安全以及信任增強的優點,能夠跨行業、跨組織地產生影響,將原本孤立的系統變成更開放的系統。以比特幣為代表的數字貨幣提供了區塊鏈技術應用的原型,以以太坊為代表的智能合約平臺延伸了區塊鏈技術的功能。

1 基本概念

1.1 低代碼開發平臺[1]

低代碼開發平臺提供了可視化的界面和預構建的組件,開發者可以通過拖放和配置來構建應用程序。低代碼平臺通常提供與以太坊區塊鏈的集成,開發者可以通過配置連接到以太坊網絡,部署智能合約,并與以太坊的節點進行通信。開發者能夠在低代碼平臺上輕松地開發和部署區塊鏈以太坊微博系統,而無須深入了解底層的區塊鏈技術和編寫復雜的代碼。

1.2 以太坊[2]

以太坊是一個基于區塊鏈技術的開源平臺,允許用戶建立和執行智能合約,創建去中心化的應用程序和數字資產。

1.3 賬戶和智能合約

以太坊中有兩種類型的賬戶:外部賬戶和合約賬戶[3]。EOA[4](Externally Owned Account)是以太坊中的外部賬戶,由私鑰控制,可以發送交易和持有以太幣或其他代幣(Token)。合約賬戶是以太坊中的智能合約賬戶,由智能合約代碼控制,可以執行預定的邏輯和操作,存儲狀態并與其他合約或外部賬戶進行交互。

智能合約[5]是以太坊上的自動執行合約,包含編程邏輯和數據,可以實現自動化的交互和資產管理。

1.4 Truffle[6]

Truffle 是一個流行的以太坊開發框架,用于構建、測試和部署智能合約。它使開發者能夠輕松地開發、測試和部署以太坊智能合約。

1.5 錢包

以太坊錢包是一種用于存儲、管理和交換以太坊及其相關代幣的數字錢包。它允許用戶創建和控制一個或多個以太坊賬戶,并使用安全的方式進行交易、轉賬和管理加密資產。常見的以太坊錢包包括MetaMask[7]、MyEtherWallet、Trust Wallet和Ledger等。

2 以太坊微博系統的架構設計與業務流程

2.1 系統架構設計

這個系統的前端使用HTML5、CSS3 和JavaScript來實現用戶界面。用戶可以通過前端界面瀏覽微博文章并發表評論。系統還需要一個后端服務器來處理用戶提交的數據和交互。這個后端服務器應該包括以太坊節點,以便與以太坊網絡進行通信。在以太坊網絡上,系統需要部署兩個智能合約,分別是微博注冊合約和微博賬號合約。微博注冊合約負責驗證用戶身份并創建新的微博賬戶,而微博賬號合約則負責管理用戶的微博文章和評論。當用戶在前端界面上發布一篇新的微博文章或發表評論時,這些數據將會被發送到后端服務器。服務器將對用戶進行身份驗證,并將文章或評論存儲在以太坊網絡上的微博賬號合約中。當其他用戶瀏覽微博或者查看評論時,系統將從以太坊網絡中讀取數據,并將其顯示在前端界面上。整個系統的核心就是以太坊虛擬機(EVM),它允許人們在以太坊網絡上部署智能合約并與其進行交互。同時,這個系統也需要一定的安全措施,以保護用戶數據和身份信息不受攻擊。圖1是該系統的整體架構圖。

圖1 系統架構圖

2.2 系統流程

這是一個運行在以太坊上的去中心化的微博系統,去中心化意味著沒有一個中心化機構能夠控制用戶發送的微博。下面介紹微博系統的注冊流程,如圖2所示。

圖2 微博注冊流程圖

第一步,需要先在Truffle中編寫微博注冊智能合約,使用Truffle 工具將其部署到以太坊網絡中,獲得合約地址。第二步,用戶注冊微博賬號。用戶在界面上填寫個人信息,包括昵稱和以太坊錢包地址,通過界面將這些信息發送給后端。第三步,后端收到用戶提交的注冊請求后,調用智能合約的注冊函數,創建一個微博賬號地址。將微博賬號地址與用戶的以太坊錢包地址進行關聯,并將用戶昵稱等信息存儲到數據庫中。第四步,返回微博賬號地址給用戶,后端將生成的微博賬號地址返回到前端界面。

3 以太坊微博系統的設計與實現

3.1 智能合約

3.1.1 微博賬號合約

1)發表微博:在發微博頁面,用戶可以輸入文字、圖片或者視頻等內容,發布到微博上。微博賬號合約會將微博的內容保存到以太坊上,以便其他用戶進行查看。

這是一個Content 結構體。該結構體包含了以下字段:text表示微博中的文本內容。imageHash表示上傳到IPFS 網絡上的圖片的哈希值。videoHash表示上傳到IPFS 網絡的視頻的哈希值。emoji表示微博中使用的表情。timestamp表示微博發布的時間戳。

該函數現在接收四個參數,分別表示微博的文本內容、上傳到IPFS 網絡的圖片和視頻的哈希值以及微博中使用的表情。函數使用require 函數來檢查微博的文本內容是否符合要求,以確保不會發布過長的微博。

2)發表評論:用戶輸入評論的內容、表情或圖片,微博賬號合約會將評論的內容保存到以太坊上,以便其他用戶可以看到評論。

這段代碼使用require 來確保傳入的微博ID 是有效的。第二個require確保傳入的評論內容不能為空,即評論的內容長度大于0。在存儲所有微博的映射中,找到目標微博并將評論添加到這個微博的評論數組中。添加評論時,使用結構體Comment 來表示評論,這個結構體包括兩個屬性,分別是評論者地址和評論內容。當函數執行完畢后,這條新評論會被添加到目標微博的評論數組中,以便其他用戶能看到這條新的評論。

3)發起打賞:在看微博時,用戶可以通過打賞的方式向對方表達贊賞或支持。用戶輸入打賞的金額,微博賬號合約會將打賞的以太幣轉入到被打賞者的賬戶中。

當用戶想要打賞給某個微博作者時,reward 函數會將打賞的金額從用戶的賬戶上轉賬到受打賞的微博賬戶地址上,用于打賞某條微博的作者。這段代碼中的address payable weiboAuthor 是一個可支付的地址變量。ownerOfWeibo(weiboId)函數的返回值是一個地址,表示微博作者的地址。payable 關鍵字用于將該地址轉換為可支付的地址,以便使用transfer 函數將用戶打賞的金額轉移到該地址,也就是轉給受打賞的微博作者。

4)提現打賞:將接收到的以太幣從智能合約的地址中轉移到一個外部的以太坊錢包地址中的過程。

這段代碼根據選擇的weiboId 獲取對應的微博信息,并存儲在weibo 變量中。使用require 函數判斷該用戶在該微博上的打賞金額是否大于0,如果不是則拋出異常,表示沒有打賞金額可以提現。如果存在打賞金額,將該用戶在該微博上的打賞金額存儲到amount 變量中,將其在_donations 映射中的值清零,表示已經提現過了。根據amount 計算手續費(Gas),并將手續費金額存儲在fee 變量中。計算扣除手續費之后的凈金額netAmount,如果小于等于0,則拋出異常,表示手續費過高,不可以提現。使用payable 關鍵字將凈金額netAmount 轉賬到該微博用戶的地址。使用payable 關鍵字將手續費fee 轉賬到微博管理員地址。

3.1.2 微博注冊合約

1)注冊微博賬號:用戶向微博注冊合約發送一個注冊請求,包含了用戶名和密碼等信息。微博注冊合約會根據傳入的參數,創建一個新的微博賬號合約,并將賬號合約的地址返回給用戶。

WeiboRegistration 是一個智能合約,用于注冊微博賬號。User 結構體定義了每個用戶的屬性。每個用戶有一個用戶名(username)、密碼(password)、微博以太坊地址(weiboAddress)、注冊狀態(isRegistered)和注冊時間(registrationTime)。

mapping(address=>User) public users 是一個映射(mapping),將用戶的以太坊地址映射到對應的User結構體,實現了以太坊地址到用戶信息的查找功能。

register 函數用于注冊微博賬號。它接受三個參數:用戶名(_username)、密碼(_password)和微博以太坊地址(_weiboAddress)。在函數體內,通過require語句對輸入進行驗證。確保用戶名和密碼非空,微博以太坊地址有效且不為零地址,并且調用者的地址還未注冊過微博賬號。如果驗證通過,將用戶信息存儲在users映射中,使用調用者的以太坊地址作為鍵。用戶信息包括用戶名、密碼、微博以太坊地址、注冊狀態和注冊時間。效果如圖3所示。

圖3 注冊微博賬號頁面效果圖

3.1.3 部署微博注冊智能合約

在Truffle中只要部署微博注冊合約就可以了,微博賬號合約可以通過前端頁面進行部署。在部署微博注冊合約之前,需要編寫遷移腳本,內容如下:

首先,引入需要使用的智能合約WeiboRegistration 和ExternalAPI。

之后,定義了一個異步函數,該函數將用來部署合約。

這些信息由用戶在界面上提供。通過deployer.deploy(),將WeiboRegistration 合約部署到區塊鏈上,并使用externalAPI.address 作為參數傳遞給合約的構造函數。然后,使用WeiboRegistration.deployed()獲取已部署的合約實例。

部署成功之后,就可以在低代碼平臺編寫前端應用了。由于前端應用的編程并不復雜,這里不再詳述。

4 結束語

基于Solidity 的低代碼以太坊微博系統是為了解決傳統微博系統中存在的中心化管理[8]、數據安全性和透明性不足等問題而設計的。在設計這樣的架構時,需要考慮一些重要的因素。首先是安全性問題,因為區塊鏈技術的去中心化和不可篡改特性[9],智能合約一旦部署就無法更改,因此必須保證智能合約代碼的安全性。其次是性能問題,因為以太坊網絡的交易速度和吞吐量受限,可能會影響系統的響應速度和并發能力。因此,在設計和實現時需要考慮這些問題,從而保證系統的可靠性和穩定性。

猜你喜歡
智能用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 久久亚洲中文字幕精品一区| 精品一区二区三区无码视频无码| julia中文字幕久久亚洲| av色爱 天堂网| 毛片网站免费在线观看| 色综合网址| 亚洲综合专区| 久久国产精品77777| 无码 在线 在线| 国产永久在线视频| 亚洲一级毛片免费观看| 久久久黄色片| 丰满人妻中出白浆| 国产在线无码一区二区三区| 999精品视频在线| 国产福利在线观看精品| 欧美自拍另类欧美综合图区| 无码有码中文字幕| 亚洲视屏在线观看| 久久精品国产999大香线焦| 日韩毛片在线视频| 国产99热| 亚洲色精品国产一区二区三区| 爱做久久久久久| 91美女视频在线观看| 久久频这里精品99香蕉久网址| 亚洲手机在线| 久久综合色88| 国产黑丝一区| 99热最新网址| 亚洲AV成人一区国产精品| 波多野结衣亚洲一区| 麻豆国产精品一二三在线观看| 亚洲日韩AV无码一区二区三区人| 国产欧美日韩精品综合在线| 9久久伊人精品综合| 四虎永久在线精品影院| 中国国语毛片免费观看视频| 91久久偷偷做嫩草影院精品| 国产三级毛片| 色色中文字幕| 日韩最新中文字幕| 欧美午夜小视频| 日韩在线永久免费播放| 无遮挡一级毛片呦女视频| 成人精品亚洲| 91免费在线看| 欧美.成人.综合在线| 91精品国产一区| 国产v欧美v日韩v综合精品| a天堂视频在线| 成人在线视频一区| 日韩高清一区 | 久久黄色影院| 动漫精品啪啪一区二区三区| 免费看美女自慰的网站| 国产成人高清精品免费软件| 国产AV无码专区亚洲A∨毛片| 亚洲人成在线精品| 亚洲高清资源| 欧美精品黑人粗大| 久久精品娱乐亚洲领先| 亚洲男人的天堂在线观看| 国产精品蜜臀| 99视频免费观看| 日韩AV无码一区| 国产女人爽到高潮的免费视频| 日本欧美一二三区色视频| www.91在线播放| 伊人丁香五月天久久综合| 日本AⅤ精品一区二区三区日| 国产九九精品视频| 在线va视频| 免费高清自慰一区二区三区| 国产三级成人| 91极品美女高潮叫床在线观看| 嫩草在线视频| 毛片大全免费观看| 永久免费精品视频| 国产成人午夜福利免费无码r| 99久久国产自偷自偷免费一区| 91精品啪在线观看国产91|