Spring Boot區塊鏈應用開發入門-微課視頻版
內容描述
本書先介紹區塊鏈基礎知識和Spring Boot區塊鏈應用開發基礎知識,再介紹區塊鏈應用的基礎開發、P2P實現、消息機制的實現、數據庫開發、共識算法的實現、工作流和多語言開發;然後,介紹Java語言版的區塊鏈庫、API、框架的應用。最後,結合一個簡單案例演示了Spring Boot區塊鏈應用開發的過程。
本書由淺入深結合示例介紹各個知識點;並以區塊鏈應用開發技術所處的層次由低到高、Spring Boot開發的由易到難和開發步驟的先後次序來組織章節內容;還配備了示例的操作視頻;可以幫助讀者更好地理解、掌握Spring Boot區塊鏈應用開發。
目錄大綱
目錄
第1章區塊鏈基礎
1.1區塊鏈簡介
1.1.1區塊鏈的含義
1.1.2區塊鏈的特點
1.1.3區塊鏈的分類
1.2區塊鏈的發展
1.2.1區塊鏈的發展簡史
1.2.2區塊鏈的發展階段
1.3區塊鏈的應用領域
1.3.1信息數據領域
1.3.2金融與數字資產領域
1.3.3供應鏈領域
1.3.4政務領域
1.4區塊鏈應用開發的相關技術
1.4.1技術模型
1.4.2支持環境
1.4.3信任機制
1.4.4智能合約
1.4.5應用系統
1.4.6區塊鏈技術的多樣性
1.5比特幣錢包的安裝與使用
1.5.1Electrum錢包的功能
1.5.2網頁版Coin.Space錢包的功能
習題1
第2章Spring Boot開發基礎
2.1Spring Boot基礎
2.1.1Spring Boot簡介
2.1.2Spring Boot的主要特點
2.2配置Spring Boot開發環境
2.2.1安裝和配置JDK
2.2.2安裝IDEA
2.3創建項目與項目基本情況
2.3.1利用IDEA創建項目
2.3.2項目的基本構成
2.4Spring Boot開發起步
2.4.1軟件生命周期
2.4.2Spring Boot開發步驟
2.5helloworld項目的實現
2.5.1添加依賴
2.5.2創建類Block
2.5.3創建類SecurityUtils
2.5.4創建類HelloController
2.5.5運行程序
習題2
第3章區塊鏈應用的基礎開發
3.1模擬兩個錢包之間的交互
3.1.1創建項目並添加依賴
3.1.2創建接口MainService
3.1.3創建類MainServiceImpl
3.1.4創建類MainController
3.1.5修改配置文件application.properties
3.1.6運行程序
3.2模擬挖礦
3.2.1添加依賴
3.2.2創建類Block
3.2.3創建類MineService
3.2.4創建類MineController
3.2.5運行程序
3.3模擬創建錢包和利用錢包進行交易
3.3.1添加依賴
3.3.2創建類StringUtil
3.3.3創建類ContractService
3.3.4創建類ErcController
3.3.5運行程序
3.4Merkle樹的實現
3.4.1創建類Stakeholder
3.4.2創建類ProofEntry
3.4.3創建類Node
3.4.4創建類FtsResult
3.4.5創建類FtsService
3.4.6創建類FtsController
3.4.7運行程序
3.5Gossip協議的模擬實現
3.5.1創建項目並添加依賴
3.5.2創建類Node
3.5.3創建類StaticSeedFinder
3.5.4創建類SeedFinderChain
3.5.5創建類GossipConnector
3.5.6創建類GossipController
3.5.7運行程序
3.6模擬IOTA的應用
3.6.1創建項目並添加依賴
3.6.2創建類IotaController
3.6.3運行程序
3.7用線程模擬區塊鏈的示例
3.7.1創建項目並添加依賴
3.7.2創建類Block
3.7.3創建類StringUtil
3.7.4創建類MineThread
3.7.5創建類OutWaitThread
3.7.6創建類MineController
3.7.7創建類BlockController
3.7.8創建類BlockchainController
3.7.9運行程序
習題3
第4章區塊鏈應用的P2P實現
4.1基於JavaWebSocket實現P2P網絡
4.1.1創建項目並添加依賴
4.1.2創建類P2PUtil
4.1.3創建類P2Pserver
4.1.4創建類P2Pclient
4.1.5運行程序
4.2基於WebSocket實現P2P頁面互連
4.2.1添加依賴
4.2.2創建類WalletSendMessage
4.2.3創建類WebSocketConfig
4.2.4創建類WalletController
4.2.5創建文件index.html
4.2.6運行程序
4.3基於tio實現P2P網絡
4.3.1添加依賴
4.3.2創建類ServerPacket
4.3.3創建類MServerAioHandler
4.3.4創建類MServerAioListener
4.3.5創建類MClientAioHandler
4.3.6創建類MClientAioListener
4.3.7創建類TIOServer
4.3.8創建類TIOClient
4.3.9創建類TIOController
4.3.10運行程序
4.4基於ZooKeeper實現P2P服務
4.4.1服務提供者模塊provider的實現
4.4.2消費者模塊consumer的實現
4.4.3運行程序
4.5基於Web Service和CXF實現P2P服務
4.5.1服務器端模塊serverofws的實現
4.5.2客戶端模塊clientofws的實現
4.5.3運行程序
4.6同一服務器向多個頁面發送區塊鏈信息的示例
4.6.1創建項目並添加依賴
4.6.2創建類Block
4.6.3創建類SocketIOConfig
4.6.4創建類Service
4.6.5創建類ServerRunner
4.6.6創建類MsgEventHandler
4.6.7創建類ClientController
4.6.8創建類StringUtil
4.6.9創建類LoggerUtil
4.6.10創建文件index.html、login.html和welcome.html
4.6.11修改配置文件application.properties
4.6.12運行程序
習題4
第5章區塊鏈應用中消息機制的實現
5.1ActiveMQ的應用
5.1.1創建項目並添加依賴
5.1.2創建類Sender
5.1.3創建類Receiver
5.1.4創建類RsUtil
5.1.5創建類ActiveMQController
5.1.6運行程序
5.2RabbitMQ的應用
5.2.1創建項目並添加依賴
5.2.2創建類Runner
5.2.3創建類Receiver
5.2.4修改入口類
5.2.5運行程序
5.3Spring Cloud Stream和RabbitMQ的應用
5.3.1創建項目並添加依賴
5.3.2創建接口Sink
5.3.3創建類SinkReceiver
5.3.4創建配置文件application.yml
5.3.5運行程序
5.4基於ActiveMQ傳遞區塊鏈消息的示例
5.4.1創建項目並添加依賴
5.4.2創建類Block
5.4.3創建類MQSendService
5.4.4創建類MQReceiveService
5.4.5創建類StringUtil
5.4.6創建類SendInfoController
5.4.7修改配置文件application.properties
5.4.8運行程序
習題5
第6章區塊鏈應用中數據庫開發
6.1MySQL的應用
6.1.1創建項目並添加依賴
6.1.2創建類Pair
6.1.3創建接口PairService
6.1.4創建類PairServiceImpl
6.1.5創建接口PairRepository
6.1.6創建類PairController
6.1.7修改配置文件application.properties
6.1.8運行程序
6.2CouchDB的應用
6.2.1創建項目並添加依賴
6.2.2創建類CouchDBConfiguration
6.2.3創建類Note
6.2.4創建類NotFoundException
6.2.5創建類NotePersistenceHandler
6.2.6創建類NoteDTO
6.2.7創建類NoteService
6.2.8創建類NotesController
6.2.9修改配置文件application.properties
6.2.10修改入口類
6.2.11運行程序
6.3MongoDB的應用
6.3.1創建項目並添加依賴
6.3.2創建類Block
6.3.3創建接口BlockRepository
6.3.4創建類SHA256
6.3.5創建類PrimaryController
6.3.6修改配置文件application.properties
6.3.7運行程序
6.4用以太坊區塊鏈進行數據審核的示例
6.4.1創建項目並添加依賴
6.4.2創建類User
6.4.3創建類Property
6.4.4創建類Feedback
6.4.5創建類ContractDetails
6.4.6創建接口Repository
6.4.7創建接口UserRepository
6.4.8創建接口PropertyRepository
6.4.9創建接口FeedbackRepository
6.4.10創建接口EthereumContractRepository
6.4.11創建類AbstractService
6.4.12創建類UserService
6.4.13創建類PropertyService
6.4.14創建類FeedbackService
6.4.15創建類EthereumService
6.4.16創建類ControllerLoggingAspect
6.4.17創建類Sha256Hex
6.4.18創建類HashArray
6.4.19創建類ApplicationConfig
6.4.20創建類UserController
6.4.21創建類PropertyController
6.4.22創建類FeedbackController
6.4.23創建類EthereumController
6.4.24修改配置文件application.properties
6.4.25運行程序
習題6
第7章區塊鏈應用中共識算法的實現
7.1PoW算法的實現
7.1.1創建項目並添加依賴
7.1.2創建類BeanInjector
7.1.3創建類BlockChain
7.1.4創建類RegisterRequest
7.1.5創建類Transaction
7.1.6創建類FastJsonUtil
7.1.7創建類SHAUtils
7.1.8創建類SwaggerConfig
7.1.9創建類BlockChainController
7.1.10修改配置文件application.properties
7.1.11創建文件index.html
7.1.12運行程序
7.2PBFT算法的實現
7.2.1創建項目並添加依賴
7.2.2創建類PbftMsg
7.2.3創建類Pbft
7.2.4創建類PoAUtil
7.2.5創建類TimerManager
7.2.6創建類PbftController
7.2.7運行程序
7.3Raft算法的實現
7.3.1創建項目並添加依賴
7.3.2創建類Follower
7.3.3創建類Candidate
7.3.4創建類Leader
7.3.5創建類ClusterMsg
7.3.6創建類MsgUtil
7.3.7創建類RaftController
7.3.8修改配置文件application.properties
7.3.9運行程序
7.4基於PoW的區塊鏈應用示例
7.4.1創建項目並添加依賴
7.4.2創建類BaseEntity
7.4.3創建類Block
7.4.4創建類Blockchain
7.4.5創建類Member
7.4.6創建類MemberGroup
7.4.7創建接口MemberRepository
7.4.8創建接口MemberGroupRepository
7.4.9創建接口BlockchainRepository
7.4.10創建類MemberService
7.4.11創建類MemberGroupService
7.4.12創建類BlockchainService
7.4.13創建類ByteUtils
7.4.14創建類ProofOfWork
7.4.15創建類PowResult
7.4.16創建類MemberandGroupController
7.4.17創建配置文件application.yml
7.4.18運行程序
習題7
第8章工作流、多語言和智能合約的應用
8.1Activiti的應用
8.1.1創建項目並添加依賴
8.1.2創建類Applicant
8.1.3創建接口ApplicantRepository
8.1.4創建類ResumeService
8.1.5創建類HireProcessRestController
8.1.6修改配置文件application.properties
8.1.7修改入口類
8.1.8修改測試類
8.1.9運行程序
8.2Spring Cloud Sidecar的多語言應用
8.2.1創建項目並添加依賴
8.2.2修改配置文件application.properties
8.2.3修改入口類
8.2.4創建文件nodeservice.js
8.2.5Spring Cloud Eureka註冊中心的實現
8.2.6運行程序
8.3智能合約的模擬實現
8.3.1創建項目並添加依賴
8.3.2創建類AccountNew
8.3.3創建接口AccountRepository
8.3.4創建類SmartContractStub
8.3.5創建接口ISmartContract
8.3.6創建類SCController
8.3.7修改配置文件application.properties
8.3.8運行程序
8.4基於Activiti的區塊鏈應用示例
8.4.1創建項目並添加依賴
8.4.2創建類Person
8.4.3創建類Comp
8.4.4創建類Block
8.4.5創建類Blockchain
8.4.6創建類TaskRepresentation
8.4.7創建接口PersonRepository
8.4.8創建接口CompRepository
8.4.9創建接口BlockchainRepository
8.4.10創建類ActiveService
8.4.11創建類JoinService
8.4.12創建類MyRestController
8.4.13創建文件join.bpmn20.xml
8.4.14修改配置文件application.properties
8.4.15修改入口類
8.4.16運行程序
習題8
第9章區塊鏈庫、API和框架的應用
9.1bitcoinj的應用
9.1.1bitcoinj簡介
9.1.2創建項目並添加依賴
9.1.3創建類BitcoinJController
9.1.4運行程序
9.2fabricsdkjava的應用
9.2.1fabricsdkjava簡介
9.2.2添加依賴
9.2.3創建類HyperledgerController
9.2.4創建配置文件config.properties
9.2.5運行程序
9.3ethcontractapi的應用
9.3.1添加依賴
9.3.2創建類EthcontractapiController
9.3.3運行程序
9.4exonumjavabinding的應用
9.4.1添加依賴
9.4.2創建類ExonumController
9.4.3運行程序
9.5web3j的應用
9.5.1web3j簡介
9.5.2添加依賴
9.5.3創建類Web3jController
9.5.4運行程序
9.6WavesJ的應用
9.6.1添加依賴
9.6.2創建類WavesJController
9.6.3運行程序
9.7基於web3j錢包業務功能的示例
9.7.1創建項目並添加依賴
9.7.2創建類 BlockchainTransaction
9.7.3創建接口BTxRepository
9.7.4創建類BlockchainService
9.7.5創建類 BlockchainController
9.7.6創建文件index.html
9.7.7修改配置文件application.properties
9.7.8運行程序
習題9
第10章基於區塊鏈的簡易系統開發
10.1基於區塊鏈的簡易聊天室開發
10.1.1操作界面
10.1.2項目的主要文件構成
10.1.3創建項目並添加依賴
10.1.4創建類Block
10.1.5創建類Agent
10.1.6創建類AgentServerThread
10.1.7創建類AgentManager
10.1.8創建類Message
10.1.9創建類ChatController
10.1.10創建文件index.html
10.1.11創建文件display.js
10.1.12創建文件restClient.js
10.1.13創建文件main.css
10.1.14運行程序
10.2基於區塊鏈的簡易證書系統開發
10.2.1創建項目並添加依賴
10.2.2創建類Block
10.2.3創建類Certificate
10.2.4創建接口CertificateRepository
10.2.5創建類CertificateService
10.2.6創建類ByteUtils
10.2.7創建類ProofOfWork
10.2.8創建類PowResult
10.2.9創建類SearchCertificateController
10.2.10創建文件add_certificate.html
10.2.11創建文件searchcer.html
10.2.12修改配置文件application.properties
10.2.13運行程序
10.3基於區塊鏈的簡易投票系統開發
10.3.1創建項目並添加依賴
10.3.2創建類ElectionBlock
10.3.3創建類Elections
10.3.4創建類Voters
10.3.5創建類Votes
10.3.6創建類Candidates
10.3.7創建實體類訪問數據庫接口
10.3.8創建類HomeController
10.3.9創建類CreatElectionController
10.3.10創建類VoteController
10.3.11創建文件index.html
10.3.12創建文件add_election.html
10.3.13創建文件add_voters.html
10.3.14創建文件add_vote.html
10.3.15創建文件add_candidates.html
10.3.16創建文件view_votes.html
10.3.17修改配置文件application.properties
10.3.18運行程序
習題10
附錄AElectrum錢包的安裝和配置
附錄B網頁版Coin.Space錢包的創建
附錄CJDK的安裝和配置
附錄DIDEA創建Maven多模塊項目
附錄EZooKeeper的安裝和配置
附錄FActiveMQ的下載與啟動
附錄GRabbitMQ的安裝與配置
附錄HCouchDB的安裝與配置
參考文獻