3.18 去中心化圖書館
版權宣告:本文為博主尹成聯絡QQ77025077,微信18510341407原創文章,歡迎轉載侵權不究。 https://blog.csdn.net/yincheng01/article/details/83867677
- 概述:以太坊線上圖書館,所有的圖書借閱資訊全部儲存在以太坊區塊鏈上
- 專案架構
- 後端邏輯
- 初始化web3
- 初始化合約
- 監聽
- 獲取所有賬號
- 獲取所有書本
- 按鈕事件
- 監聽
- 借出事件
- 歸還事件
- 獲取圖書
- 初始化圖書狀態
- 列出所有賬號
- 切換賬號
- 新增記錄
- 圖書按鈕點選事件
- 新增借閱記錄
- 獲取當前時間
- 實現
pragma solidity ^0.4.18; contract Library { mapping(uint => address) bookStatus; //書籍狀態 查詢指定書籍是否已經被借出,如果沒有借出 則地址為0x0,否則應該是借閱人的地址 struct Record{ address user; // 借閱人 uint timestamp; // 借閱時間 uint rtype; // 型別 1-借出,2-歸還 } mapping(uint=>Record[]) record; // 指定書籍的借閱記錄 event BorrowEvent(address indexed _from, uint _id, uint _cost); //借出事件 event Reback(address indexed _from , uint _id); //歸還 // 借書 function borrow(uint _id) payable returns(bool){ ... return true; } // 歸還 function reback(uint _id) returns(bool) { ...; return true; } // 查詢指定圖書狀態 function getBookStatus(uint _id) returns (int) { int status = 0; ... return status; } // 查詢指定書籍的借閱人 function getBookBorrower(uint _id) constant returns(address) { return bookStatus[_id]; } }
-
學院Go語言視訊主頁
ofollow,noindex" target="_blank">https://edu.csdn.net/lecturer/1928 -
掃碼獲取海量視訊及原始碼 QQ群:721929980
閱讀更多