# BlockChain **Repository Path**: timandroid/BlockChain ## Basic Information - **Project Name**: BlockChain - **Description**: 黑马程序员 120天全栈区块链开发 开源教程 - **Primary Language**: Kotlin - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-11-17 - **Last Updated**: 2022-05-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 黑马程序员 120天全栈区块链开发 ### 写在前面 据说2018年谈区块链的10个人中有9个都是骗子, 一些机构自己都没搞懂区块链是什么, 就打着区块链的噱头招生了 讲解几个helloworld程序就说是区块链开发了 区块链是综合性的技术栈, 单单掌握一门语言肯定是不够的. 为了防止劣币驱逐良币, 为了区块链技术在国内快速的普及, 为了千万人少走弯路, 传智播客智能物联网+区块链学院决定github开源全套就业班课程. 欢迎大家star. ### 开源目的 1. 课程历时两年课程研发, 所有区块链框架均用最新版本授课, 全力推动新技术在中国的普及 2. 深入浅出讲解, 用短的学习曲线让Java程序员和JavaScript程序员快速掌握区块链技术 3. 普及区块链知识, 帮助各公司CTO理解区块链的业务场景 4. 课程包含超多案例分析, 帮助企业和政府采用区块链技术解决痛点问题 5. 学完课程后,可以**独立**完成区块链项目的设计和开发 6. 学完课程后,可以满足公司对区块链开发工程师的要求, 解决社会人才供不应求的问题 ### 课程服务 1. 开源课程全部免费, 随着传智播客面授班级授课周期, 同步开源更新 2. 但因区块链技术变化日新月异, 课程中部分工具和方法可能会随着版本的更新失效, 关于课程讲解若有更好的方式, 欢迎pull request. 3. 没有毅力 自主学完全套课程的朋友, 可以报名传智播客 黑马程序员 智能物联网+区块链就业班 4. [点击查看黑马程序员官网](http://www.itheima.com/course/wlwtext.html) 课程表 | 视频名称 | 下载地址 -| - | - 开班典礼|01_从实体货币到数字货币|https://pan.baidu.com/s/1yW929XMP_fuBBg7Yi7tFIg 开班典礼|02_分布式记账|https://pan.baidu.com/s/1rr5ID89fSPajwNaBHrUXMg 开班典礼|03_中心化和去中心化|https://pan.baidu.com/s/1Br4Zy-fzZUJ_heGkfUb6mw 开班典礼|04_hash函数|https://pan.baidu.com/s/1uJ89F3ETsHmfPmU3c5Idgw 开班典礼|05_hash算法的安全性|https://pan.baidu.com/s/1NWaykKebdU76JZC_cT02Vg 开班典礼|06_分布式系统和数据一致性|https://pan.baidu.com/s/1ABEJwUsltPf9A9416titAg 开班典礼|07_通货膨胀和比特币|https://pan.baidu.com/s/1KY2cRI0TNjKFWSpi_j8xWA 开班典礼|08_区块链技术的演化|https://pan.baidu.com/s/1qIt969qHiQPxEor1GdX1_A 开班典礼|09_区块链的应用场景|https://pan.baidu.com/s/1gEBqueKmYRwx2waxpKDVKg 开班典礼|10_我到底需不需要区块链技术|https://pan.baidu.com/s/1HXIM9SI9P0CKpuCOikqYSw 开班典礼|11_如何鉴别区块链风口里的猪|https://pan.baidu.com/s/14z3MPBOHt8lizvwhjLKZMg 开班典礼|12_区块链项目的评估方法|https://pan.baidu.com/s/1aYajM01WjQGAoJ1z4gJnFg 开班典礼|13_ico和ipo和daico|https://pan.baidu.com/s/1TniVTbkxTgygEIbymCyuJw 开班典礼|14_关于区块链的错误认知|https://pan.baidu.com/s/17LmSsgD7RySB9vU9Zymz-g 开班典礼|15_分布式系统的一些概念|https://pan.baidu.com/s/13se0IiA8C5zRsWjE4F3NFA 开班典礼|16_区块链技术栈和学习线路图|https://pan.baidu.com/s/1d9RXv_Qh3srl9a9PqE9ibQ 开班典礼|17_区块链的技术现状|https://pan.baidu.com/s/1auv18CFORJpWNqVfeaHESg ### 课程课表 - **第一周: java加强/kotlin/dsl/函数式编程/gradle/git/高阶函数/lambda表达式** - 课程设计背景: kotlin是一个非常具有潜力和启发性的编程语言,100%与Java兼容, 安卓开发谷歌官方指定语言,它吸收和借鉴了Java, Scala, Groovy, C#,Go,JavaScript等语言的优点和特性,可以让大家脱离语言层面的纷争,把目光投向具体的业务. 目前区块链金融和银行领域的解决方案corda就是采用kotlin编写.掌握kotlin语言有助于帮助程序员用极小的成本理解和学习其他编程语言. - 课程选型原因: 区块链开发需要掌握 JavaScrpit,nodejs,npm,JavaEE,gradle,git,分布式,solidity,hyperledger等多种技能,学习kotlin有助于这些技术的理解和学习. - 课程学习的目标: 1.熟悉Kotlin和Java的语言特性; 2.深入的理解抽象和封装; 3.掌握函数式编程思想; 4.掌握高阶函数、闭包、DSL; 5.理解线程和协程,熟练使用项目构建工具gradle; 6.理解版本控制; 7.熟练使用git管理整个就业班阶段的源码和课程笔记; 8.为未来可持续性的发展打下坚实的基础. - 课程学习说明: 每一个程序员都应该好好听一下这一段课程 - 课程开源时间: 2018年5月13日 - **第二周:区块链前端开发基础** - 课程设计背景: 去中心化Dapp的页面开发还是基于传统的Web2.0的技术,html/css/javascript是整个互联网页面的基石,学好他们打好基础非常的重要. - 课程选型原因: 课程讲解实用的html/javascript/css技术,为实际项目开发做准备. - 课程学习的目标: 1.熟练使用JavaScrpit/html/css构建网页; 2.熟练掌握前端各种技能,培养解决复杂问题和技术难点的能力; 3.增强学员的调试技能和组件开发能力; 4.能够实现功能的同时,考虑代码的优雅性,注重代码的性能和重用性; 5.深入理解前端框架实现原理; 6.能用kotlin开发和包装通用的前端组件. - 课程学习说明: 熟悉前端技术栈的程序员可以选择性的学习 - 课程开源时间: 2018年5月24日 - **第三周:Java分布式/springboot/springcloud/微服务/数据库技术** - 课程设计背景: 要想深入理解区块链去中心化分布式账本技术,必须对传统的中心化系统和分布式系统有理解. - 课程选型原因: Springboot的微服务架构在JavaEE企业级开发中广泛采用,我们选用springboot讲解传统javaEE的开发模式和流程. - 课程学习的目标: 1.熟练使用springboot微服务框架进行后台项目开发; 2.熟练使用mysql数据库,H2数据库等常用数据库; 3.掌握常见会话技术; 4.掌握xml和json数据交互; 5.掌握gradle依赖管理工具; 6.掌握restful服务; 7.积累传统互联网后台项目开发经验. - 课程学习说明: 熟悉spring全家桶的java程序员可以选择性的学习 - 课程开源时间: 2018年6月10日 - **第四周: 微服务+支付 springboot版互联网彩票项目实战** - 课程设计背景: 通过实战项目对前期知识点进行综合应用. - 课程选型原因: 使用主流框分布式技术和springboot微服务,项目实战快速满足企业后台开发需求. - 课程学习的目标: 1.实现电商平台服务端核心业务; 2.实现电商平台移动端核心业务; 3.理解传统中心化互联网技术的痛点; 4.理解国家叫停互联网彩票销售的原因; 5.熟悉springcloud的分布式微服务架构; 6.理解支付的业务接口,为区块链货币支付埋下伏笔; - 课程学习说明: 从项目原型设计到实战, 全干货实战课程, 无论几年工作经验的程序员都有必要学习 - 课程开源时间: 2018年6月18日 - **第五周: 区块链前端和中间件开发 Nodejs+Vue+React** - 课程设计背景: 技术的转型和发展不是一蹴而就的,区块链项目和传统项目的融合和互相补充是目前企业普遍采用的解决方案, 以太坊和hyperledger等区块链项目开发需求有更加组件化的前台和更加强大的中间件. - 课程选型原因: nodejs是广泛使用的中间件.Vue和react是组件化前端开发的必备技能,hyperledger的智能合约编写依赖nodejs.Nodejs是区块链开发的必备技能. - 课程学习的目标: 1.使用nodejs开发web应用; 2.熟练使用Express框架; 3.使用Vue和React快速开发前端界面; 4.能够针对前端主流项目中的bug和技术难点,能够提供解决办法. - 课程学习说明: 经验丰富,熟练掌握vue,react和nodejs的前端程序员可以跳过这段课程 - 课程开源时间: 2018年7月6日 - **第六周: 区块链项目实战 -- IPFS音乐播放器项目** - 课程设计背景: 综合使用前后端和区块链技术的项目实战. - 课程选型原因: IPFS是下一代的互联网协议,是http协议的颠覆者,课程采用IPFS作为平台,综合使用前端和中间件技术,提升学员的技术实力. - 课程学习的目标: 1.掌握IPFS星际文件系统介绍; 2.理解IPFS使用场景; 3.熟悉IPFS节点初始化和基本命令; 4.能够搭建私有IPFS网络; 5.熟悉IPFS.js相关API; 6.熟悉ipfs与docker; 7.能够配置IPFS 跨域资源共享CORS. - 课程学习说明: 实战项目,每个对ipfs有兴趣的程序员都有必要学习 - 课程开源时间: 2018年7月14日 - **第七周--第八周: 以太坊和智能合约项目实战** - 课程设计背景: 以太坊是第二代的区块链技术, 智能合约实现价值转移,会有越来越多的应用场景. - 课程选型原因: 基于以太坊的智能合约开发可以解决各种各样的信任问题.有着非常广泛的应用场景,目前基于以太坊的创业公司众多, 市场招聘量巨大. - 课程学习的目标: 1.了解evm是web3.0革命的原因; 2.熟练掌握常用的以太坊工具和框架Wallet、Geth、MetaMask、Remix、Turffle、Ganache、mocha; 3.熟悉常见的共识协议(PoW、PoS、 dPos),可以搭建以太坊私链; 4.熟练使用Web3(v1.0) / Ganache / Truffle / Mocha框架等多种工具开发Solidity智能合同; 5.能够说出以太坊区块链的工作原理 | Ethers,Gas,POW,POS,node节点; 6.熟悉分布式账本、共识、挖矿; 7.熟练使用web3库,配合vue和react构建去中心化应用; 8.熟悉在Ethereum平台上开发去中心化应用程序(DAPP); 9.能设置私人区块链网络进行开发和实验; 10.了解以太坊和Solidity的真正目的和功能; 11.熟悉智能合约常见的设计模式; 12.能够设计,测试和部署安全的智能合同; 13.能在Ethereum平台上构建,设计和构建真实项目; 14.能够创建符合ERC20的token,发行代币; 15.理解ICO,熟悉DAICO; 16.能使用oracle打通链上和链下,进行数据交互; 17.拥有扎实的基础,快速融入各种区块链相关的开发工作中. - 课程学习说明: 课程以实战为主,会讲解去**中心化彩票项目和众筹项目开发**, 强烈建议认真学习. - 课程开源时间: 2018年7月24日 课程表 | 视频名称 | 下载地址 -| - | - week7/day01|01_课程简介|https://pan.baidu.com/s/1vyuydXrAQSICw0MOfKNgEQ week7/day01|02_以太坊的历史|https://pan.baidu.com/s/1DJx5g3dhzEi9CA7beqEDkg week7/day01|03_以太坊和以太坊网络|https://pan.baidu.com/s/1vutWpw07r5vmr252nIbNtA week7/day01|04_和以太坊网络交互的方式|https://pan.baidu.com/s/10ySQp2dP3o5DUELv2jh2FA week7/day01|05_metamask的安装和基本操作|https://pan.baidu.com/s/1e-shvnS5p6WmQoO-IZM1lw week7/day01|06_以太坊钱包地址详解|https://pan.baidu.com/s/1atRkB7xPkoQXAcoI1RT7qw week7/day01|07_如何获取以太币|https://pan.baidu.com/s/1bsxrgRHHuKAKR9A9tUsbMw week7/day01|08_转账过程详解|https://pan.baidu.com/s/127KQBTBWzj4JhYxQZUXMfQ week7/day01|09_为什么转账需要一些时间|https://pan.baidu.com/s/1e-UbQWBvD0TQlpRQFtVrPw week7/day01|更多内容|等待上传... 课程表 | 视频名称 | 下载地址 -| - | - week7/day03|01_业务分析|https://pan.baidu.com/s/1cTAdME1EF20kxGAFry9yKw week7/day03|02_智能合约的初步设计|https://pan.baidu.com/s/1OUpfXQs4yzrcOAn8XHRH6w week7/day03|03_solidity编程语言数据基本类型|https://pan.baidu.com/s/1aib1_Yg44us5RLDyeNY6rQ week7/day03|04_彩票智能合约初步编写|https://pan.baidu.com/s/1PGuc0ajDHjEWhsz4fVwTuQ week7/day03|05_彩票智能合约的manager赋值|https://pan.baidu.com/s/1Od_m_5hoRFHQauQ2FytqoQ week7/day03|06_solidity数组讲解|https://pan.baidu.com/s/13MXnDVzwr3VwXN2K1Vj0Mg week7/day03|07_solidity数组开发的小坑|https://pan.baidu.com/s/1ez-_Sw8CLOu1Q1ESc_gcHA week7/day03|08_支付的校验|https://pan.baidu.com/s/1IReaf6zv1zE7bh4GkDr98Q week7/day03|09_智能合约的debug|https://pan.baidu.com/s/1JZ97eVt0gJW3lyY-j4Oi5g week7/day03|10_公众查询奖金池里面有多少钱|https://pan.baidu.com/s/1U9y87ZbDlXrDyO0WQEBq0g week7/day03|11_彩票开奖的逻辑|https://pan.baidu.com/s/1PIel3YRfC3RYuHfuIlPi7A week7/day03|12_随机数生成器|https://pan.baidu.com/s/1q7TAg3wVmZ5T2ijdcFbCVA week7/day03|13_选取幸运的彩民|https://pan.baidu.com/s/1mBaJVGRta-W10983huB-JQ week7/day03|14_智能合约自动发送奖金给中奖者|https://pan.baidu.com/s/1YZn7AO8U-OwE5KuD_5Tgcw week7/day03|15_彩票智能合约业务逻辑细节修复|https://pan.baidu.com/s/1pKiEuuCBcCU2SDImJ3oo4Q week7/day03|16_彩票智能合约权限相关漏洞修复|https://pan.baidu.com/s/14aWRo4vVqCGpHRQgYGzGBA week7/day03|17_solidity高效特性内联函数modifier|https://pan.baidu.com/s/1DaFTA0FD4aMRZZzfB5NtKg week7/day03|18_手动测试彩票智能合约的逻辑|https://pan.baidu.com/s/1OlskLELc8XgAY2hgz4a9_Q week7/day03|19_搭建ide测试开发环境|https://pan.baidu.com/s/179caqckJVKbZwvja3tK3Yw week7/day03|20_单元测试智能合约的编译和部署|https://pan.baidu.com/s/1LuUubPxTvFCIqWL9rxFncA week7/day03|21_智能合约购买彩票和查询奖池的测试|https://pan.baidu.com/s/1wWpPI5O2Iy9nhJzA261UYg week7/day03|前端项目开发|等待上传... - **第九周: 区块链产品经理之道** - 课程设计背景: 区块链是新型的技术,懂产品的开发人员更受欢迎. - 课程选型原因: 懂技术,懂市场的人才能在激烈的竞争中脱颖而出. 区块链颠覆性的技术,需要有更懂产品的人,才能让技术落地,产生价值. - 课程学习的目标: 1.MRD文档; 2.需求挖掘与管理; 3.产品设计; 4.PRD文档; 5.项目排期与推进; 6.数据分析与版本迭代; 7.需求调研分析; 8.掌握产品经理产品研发流程; 9.熟悉在各个里程碑节点下与产品经理的配合机制; 10.熟悉项目把控及风险评估; 11.区块链实战案例-增长黑客. - 课程学习说明: 伪区块链技术和真区块链技术需要产品经理好好把握, 区块链解决的痛点是什么,值得大家思考 - 课程开源时间: 2018年7月29日 - **第十周: hyperledger 企业级开发项目实战 -- 江苏省农牧厅渔业管理系统** - 课程设计背景: hyperledger是IBM公司支持,linux基金会孵化的区块链商业级开发平台. - 课程选型原因: hyperledger是可以广泛运用在私有链和联盟链上,国内有众多的大公司加入了hyperledger联盟. - 课程学习的目标: 1.熟悉hyperledger; 2.区块链3.0; 3.熟悉Hyperledger Fabric Technology的各种组件(Peers、Orderer、MSP、CA ...); 4.了解hyperledger febric架构; 5.能够使用hyperledger febric搭建集群平台; 6.能够使用nodejs或Go语言编写智能合约链码; 7.熟悉hyperledger febric的部署; 8.运用hyperledger febric解决企业的实际问题. - 课程学习说明: 课程通过实战案例,分析hyperledger的应用场景,带你分析业务,最后实现项目 - 课程开源时间: 2018年8月9日 课程表 | 视频名称 | 下载地址 -| - | - week10/day01 | 01_hyperledger是什么 | https://pan.baidu.com/s/1mxBeIyBlsy8UwBnvFP78Kw week10/day01 | 02_hyperledger学习目标 | https://pan.baidu.com/s/1YZADE48SjcqH4FKn7qsBiw week10/day01 | 03_hyperledger重建信任 | https://pan.baidu.com/s/1VwN9Omb42k0NCoiCa96fJw week10/day01 | 04_hyperledger如何解决现实问题 | https://pan.baidu.com/s/1lziZ_63kfzE7hKmYDb-LNw week10/day01 | 05_hyperledger重要组件CA,peer和ordering | https://pan.baidu.com/s/13CbBZhglRyGCFw5XUBWokQ week10/day01 | 06_hyperledger案例实战--江苏省农牧厅渔政管理系统 | https://pan.baidu.com/s/1OZz5CscVcTOHSxqSU2OBOg week10/day01 | 07_hyperledger的channel | https://pan.baidu.com/s/1GEkpK63P61OLJxtCbsRZ7w week10/day01 | 08_hyperledger的chaincode | https://pan.baidu.com/s/1ClxMg7ZajZaOZutSCK9V0g week10/day01 | 09_hyperledger的工作流程(重要) | https://pan.baidu.com/s/1r5dqkxeLFAsGenjqaRZLIA week10/day01 | 10_hyperledger的msp | https://pan.baidu.com/s/13T9nf4xsL_8QJd262_sQpw week10/day01 | 11_hyperledger术语回顾 | https://pan.baidu.com/s/13-PzjVvwJxcoNHAPbxLQ6A week10/day01 | 12_hyperledger案例实战--生产者业务分析 | https://pan.baidu.com/s/13_t3uKnQkq_DVFkTpsL-lA week10/day01 | 13_hyperledger案例实战--消费者业务分析 | https://pan.baidu.com/s/1DTLSofrOH1OVjljmVa58qg week10/day01 | 14_hyperledger案例实战--隐私业务分析 | https://pan.baidu.com/s/1LFkzfA1Oh4db2j008ba0Xg week10/day01 | 15_hyperledger案例实战--渔政监管需求分析 | https://pan.baidu.com/s/1-45AN9lS742WJrVExharGQ week10/day01 | 16_hyperledger案例实战--msp管理 | https://pan.baidu.com/s/1VpOQzUuKVR-PU7pO1E2Sug week10/day01 | 17_hyperledger案例实战--业务复盘 | https://pan.baidu.com/s/1W8-qvPYArcyqBG654vYjnA week10/day01 | 18_hyperledger案例实战--手把手环境搭建 | https://pan.baidu.com/s/1-q93okIZ2oZ3kruDX60DAw week10/day01 | 19_hyperledger案例实战--安装git和docker | https://pan.baidu.com/s/1XkFvJPwHUIY4oUe4RPVx9Q week10/day01 | 20_hyperledger案例实战--tools和docker镜像安装 | https://pan.baidu.com/s/1oHZ7i3i-1oB4y_DVCMbI1A week10/day01 | 21_hyperledger案例实战--first-network | https://pan.baidu.com/s/1FU6M5c9OHLdvE9zs4XEXuQ week10/day01 | 22_hyperledger案例实战--chaincode讲解 | https://pan.baidu.com/s/194LKUBBj6H8e3FddhUs8fA week10/day01 | 更多内容 | 等待上传... - **第十一周: 区块链移动开发+智能物联网** - 课程设计背景: 如果说下雨天和巧克力更配,那物联网和区块链就更搭. - 课程选型原因: 区块链技术给物联网带来了更多想象的空间,智能物联网和区块链在未来几年会有更大的发展,懂硬件的程序员会备受欢迎. - 课程学习的目标: 1.熟练使用kotlin编写android移动端和嵌入式代码; 2.掌握android移动端开发技能,能开发移动端的钱包应用; 3.掌握Android Things物联网开发环境搭建; 4.掌握常见传感器的使用; 5.掌握GPIO串口总线使用; 6.掌握GPS模块开发流程; 7.熟悉声控灯、光控灯、红外探测仪、倒车雷达等硬件开发; 8.能够操控摄像头智能硬件设备; 9.能够通过树莓派连接多个传感器设备、监听传感器数据变化; 10.掌握硬件与服务器交互的方法; - 课程学习说明: 生鲜溯源, gps+传感器冷链跟踪, IOTA给区块链更多想象的空间. - 课程开源时间: 2018年8月20日 - **第十二周: 赠送课程: Go语言快速入门** - 课程设计背景: go语言是一门非常简单易学的高效语言, 在hyperledger里面有一些使用场景 - 课程选型原因: 掌握kotlin后, 可以在10个小时内掌握go语言的精髓, 作为面试加分项 - 课程学习的目标: 1.掌握go语言语法和控制结构; 2.灵活使用go语言编写并行化代码(类似kotlin协程) 3.理解不同编程语言, 静态类型和动态类型的区别; 4.熟悉go语言的语法特性; 5.理解go语言的设计原理; 6.能够编写基于go语言协程的服务器负载监视器 7.能够编写基于go语言的hyperledger智能合约 - 课程学习说明: 快速教大家使用go语言重写nodejs的智能合约. - 课程开源时间: 2018年9月10日