/BlockChain

黑马程序员 120天全栈区块链开发 开源教程

Primary LanguageKotlinMIT LicenseMIT

黑马程序员 120天全栈区块链开发

写在前面

据说2018年谈区块链的10个人中有9个都是骗子, 一些机构自己都没搞懂区块链是什么, 就打着区块链的噱头招生了

讲解几个helloworld程序就说是区块链开发了

区块链是综合性的技术栈, 单单掌握一门语言肯定是不够的. 为了防止劣币驱逐良币, 为了区块链技术在国内快速的普及, 为了千万人少走弯路, 传智播客智能物联网+区块链学院决定github开源全套就业班课程.

欢迎大家star.

开源目的

  1. 课程历时两年课程研发, 所有区块链框架均用最新版本授课, 全力推动新技术在**的普及
  2. 深入浅出讲解, 用短的学习曲线让Java程序员和JavaScript程序员快速掌握区块链技术
  3. 普及区块链知识, 帮助各公司CTO理解区块链的业务场景
  4. 课程包含超多案例分析, 帮助企业和政府采用区块链技术解决痛点问题
  5. 学完课程后,可以独立完成区块链项目的设计和开发
  6. 学完课程后,可以满足公司对区块链开发工程师的要求, 解决社会人才供不应求的问题

课程服务

  1. 开源课程全部免费, 随着传智播客面授班级授课周期, 同步开源更新
  2. 但因区块链技术变化日新月异, 课程中部分工具和方法可能会随着版本的更新失效, 关于课程讲解若有更好的方式, 欢迎pull request.
  3. 没有毅力 自主学完全套课程的朋友, 可以报名传智播客 黑马程序员 智能物联网+区块链就业班
课程表 视频名称 下载地址
开班典礼 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日