本课程是 coursera 的公开课:IBM 区块链基础教程(IBM Blockchain Foundation for Developers)。IBM 的区块链工程师 Ant Cole 和 Dave Gorman 将带领大家学习怎样建设属于自己的区块链应用。课程地址:https://www.coursera.org/learn/ibm-blockchain-essentials-for-developers/
话不多说,让我们开始吧。
IBM区块链基础课程 第一周
0 课程介绍
如果你是一个软件开发人员,但是刚刚接触区块链,这是为你准备的课程。富有经验的 IBM 区块链开发志愿者将带领你学习一系列视频,讲述了高级的概念、组成元素,以及一些建立区块链商业网络的策略。你还会亲自实践模仿并建立区块链网络,创建你的第一个区块链应用程序。
第一部分包括区块链的基础概念,不需要编程基础。但是,要完成四个实验中的三个,你必须理解基本的面向对象软件的编程知识,以及怎样使用 command line。如果你会用 JavaScript 写代码就更好了,但是不是必需的。
当你完成这个课程,你应该理解区块链商业网络是什么,怎样建立一个简单的区块链方案,以及在创建区块链应用程序中的开发者的角色。
- 第一周:你将对全部课程有一个总体了解,并准备好计算机软件和硬件。你也会对 IBM Blockchain 有所了解。
- 第二周:你会了解区块链怎样帮助你建立更安全、高效的商业网络。
- 第三周:你会了解 IBM 和 Hyperledger Project,以及 Hyperledger Composer,一个帮助你快速模仿和建立区块链商业网的工具。
- 第四周:你会了解 Hyperledger Composer 是什么,它是怎样工作的?怎样使用 Composer 建立一个简单的区块链网络。
- 第五周:你会了解区块链方案的组成,以及人们的角色,包括模仿、建立、维护区块链方案的人。你还会学习使用 command-line tools 在 JavaScript 建立一个简单的应用程序,查询和升级一个下拉菜单式的区块链网络账本。你还会学习到更多关于区块链结构的知识,以及开发者、管理者、网络舆论最关注的问题。你还会亲自实践一个 Hyperledger Fabric 网络样本,包含了两个组织,两个节点,以及一个订单服务。
- 第六周:总结。
1 开始
1-1 关于这个课程
在这个课程里,你会学到一些面对商业网络时的常见挑战,以及一个使用区块链技术来记录和运行交易是怎样解决其中的问题的。
当你完成这个课程时,你应该会理解:
- 商业环境中的区块链和分布式账本系统
- 区块链商业应用的重要概念和关键实用案例
- 资产怎样在区块链网络中流转
- 使用 Hyperledger Composer 的结构和益处,Hyperledger Composer 是一个开源项目,也是一个区块链网络的一整套高级概念
- 怎样使用 Hyperledger Composer 去建模,并建成一个简单的商业网络
- Hyperledger Fabric 的组成和结构。它是区块链架构,使用容器来主持智能合约,也叫链码(chaincode),构成应用程序系统的逻辑
- 区块链方案的组成要素,比如:钱包、分类账簿、参与者、共识、安全,以及智能合约。
- 关键的考虑和责任,那些帮助建设、建模、运行、维持区块链商业网的人:开发者和管理者
- 达成共识的途径
- 你可以用来和网络交互的工具和应用程序
实验室
当你完成课程的实验,你会理解怎样转移资产,建模,搭建,程序化地和区块链网络交互。
- 实验一:使用网络版 Hyperledger Playground Composer 在一个汽车拍卖网络中转移资产。
- 实验二:模仿一个简单的网络,使用安装好的 Hyperledger Playground Composer(这个实验只能在 mac 上使用)
- 实验三:建设一个简单的应用程序,用链码(chaincode)提问并升级账本
- 实验四:建设你自己的网络
课程指导老师
Ant Cole
从 2010 年起在 IBM 工作。他目前的主要任务是 World Wide Blockchain Enablement,创造教育资源、课程,以及找到最好的推广的途径,从内部和外部两个方面,去传播可能的商业应用程序和区块链商业的技术能力。
Dave Gorman
在 IBM 的 World Wide Blockchain Enablement 工作,吸引区块链商业网络应用的客户。
1-2 开始之前
- 实验一:你可以在任何操作系统上运行这个实验。只需要一个浏览器。建议使用 Firefox 或者 Chrome。你不需要任何其他的软件。
- 实验二:你只能在 Mac 上运行这个实验。如果你没有 Mac,还是建议你把实验文件读一遍,熟悉区块链方案的各个步骤。这个实验使用 Hyperledger Composer Playground,你要在本地安装好它们。在安装 Hyperledger Composer Playground 之前,你必须设置好你的 Mac。
- 设置 Mac https://hyperledger.github.io/composer/installing/installing-prereqs#macos
- 本地安装 Hyperledger Composer Playground https://hyperledger.github.io/composer/installing/using-playground-locally.html
- 实验三、四:你可以在 Mac 或者 Windows 上运行。参照 实验文件,了解需要什么软件。
笔记和资源
笔记
IBM Bluemix 已经改名为 IBM Cloud。但是在这里你有可能看到有些引用还是使用 IBM Bluemix。
资源
你可以下载这个课程的资源:课程幻灯片 https://www.coursera.org/learn/ibm-blockchain-essentials-for-developers/supplement/xrjF6/notes-and-resources
2 什么是区块链?
2-1 什么是区块链
今天的商业网络常常效率低下,因为每个参与者都要保存记录、账本,生意往来中的所有市场主体的所有记录。这个程序成本高昂,因为重复劳动和中间人费用。
一个解决方式是使用区块链技术,它提供了一个共享的分类账簿技术,允许任何参与者看到同一个系统的记录,或者账簿。使用区块链技术,商业会因为更有效的商品、服务交易而受益。
这个视频章节,描述了商业网络和交易,区块链能解决的问题,什么是区块链,已产出它怎样工作,以及典型应用案例。
3 商业背景
3-1 商业背景
我们观察到,商业永远不会孤立运行。他们一直在一起工作,和其他经济体、政府、银行,和所有市场组织。财富通过商品和服务在商业网络中不断流转而有效地积累。
市场实际上可以有两种类型。我们可以有一个开放市场,比如说拍卖,或者一个私密市场,比如供应链融资,或者债券兑换之类的。所以实际上,这些商业网络是区块链应用程序的基本原理,我会在后面讲解这一点。
所以,资产在商业网络中流转。基本上,我们看到有两种不同的资产。有形资产,比如你的房子和车子。无形资产,比如一首数字音乐,或者一个金融工具,比如债券,一份知识产权。我们还看到,现金也是资产,而且有匿名的属性。实际上,如果我使用 5 欧元的现金,我不知道它从哪里来,也不知道它会去哪里。
所以,账本很重要。它可以有效记录资产从一个机构中流进、流出。每发生一次交易,账本就更新一次。 举个例子,如果我要和另一个人在商业网络中转移资产,当交易发生时,我们都要更新我们的账本。通常,资产的流转是受合同约定的。我们发现这些合同其实可以非常简单。我可以把我的车转移给别人,或者他们也可以受到一个稍微复杂一点的合同的约定。但是,基本上,账本在这里是关键。它们记录资产的流进和流出。
现在我们还没有怎么说到区块链。让我们把区块链放到这个图景中。区块链是有最高可信度的分布式账本,而且有一个共享的商业流程,覆盖商业网络的所有个体。就是这样。如果有人在电梯里问你,什么是区块链?你就这么告诉他。
4 问题所在
让我们退回去,看看今天事情是怎么运行的。每个商业网络中的成员都有自己的账本。就像我之前提到的,资产每次流入或流出,都要更新一次。
这个系统是从 13 世纪开始的。其实我们在逐渐数字化一个几百年高龄的系统。优点在于,它是行之有效的,而且被广泛运用。
缺点在于它低效、昂贵,而且脆弱。什么意思呢,低效是说每个不同的商业主体都要运行一套自己商业程序,以升级自己的账本。其实,他们在做重复劳动。它很昂贵,比如说你要做一些内部或外部审计,就需要在商业网络之间耗费巨量的时间和精力。
一些银行告诉我们,他们有 20% 的时间花在内部和外部审计上,因为它太复杂了。它也是脆弱的,因为欺诈,以及对账本的恶意篡改,或者遭遇网络攻击或网络事故。或者是一些实际上很难列举的错误。不过这都是区块链到来之前的事情。 如果我们把区块链带进来,我们就可以让所有商业成员在区块链上共享一个账本。这个账本通过点对点技术在商业网络中的所有成员之间复制。
不过,实际上,我们使用私密服务来决定谁可以看到商业网络中的特定内容。比如,如果 A 和 B 在交易一项资产,那他们双方都可以看到交易的所有细节。但是,如果银行不是这个交易的成员,就看不到这些细节。
或者,假如 A 和银行之间做一笔交易,那他们两个就可以看到所有的交易细节,B 就看不到了。这些都是可以控制的,通过私密服务。当我们把区块链加入到商业体系,我们得到了这四个重要的结果:意见一致(consensus)、可追溯(provenance)、不可更改(immutable)、定局(finality)。 意见一致(通常被叫做共识)意味着我们决定了在商业网络中谁有权力激活或者批准一笔交易。这是写在区块链系统里的。通过使用区块链技术,我们实际上实现了可追溯。现在这是一个审计路径,完整记录了一个个体整个生命周期里拥有什么资产。这写全部记录在区块链里。而且,因为我们使用隐私服务,去把区块链里的一个区块和下一个区块连接起来。这意味着区块一旦被写下来,就是不可能篡改的,这给我们带来了不可更改的特性,这可以在商业网络里有效增加信任。最后,同样重要的,是定局。这是前面三个结果带来的结果。这意味着,一旦什么东西被记录在区块链里,我们就拥有了唯一的一份记录系统,代表商业网络里唯一的真相系统。这样的话,即使发生什么争议,都可以高效地解决。
5 和比特币的关系
当我们开始讲区块链的时候,我们发现很多人没有搞清楚区块链和比特币的关系。坦率地说,比特币是一个不受约束的影子货币,它有一个吸引人的特性:匿名性。我们不知道我们要把比特币传递给谁,也不知道从谁那里接收到比特币。而且,因为它的匿名性,所以有不断增加的计算资源去维持比特币网络。
但是,比特币是最大的,也是第一个落地的区块链应用。所以比特币实际上是一个非常重要的参照点。我们感兴趣的不是影子货币,我们对区块链的商业应用感兴趣。这和比特币有三个不同。
- 第一,我们优先考虑实名,而不是匿名。这意味着商业网络中的每个人都知道自己在和谁做生意。所以我们很清楚对方是谁。
- 第二,我们很重视选择工作证明(POW)贡献者。这意味着,在我们感兴趣的区块链中,我们选择商业网络中谁有权力去认可交易。这在技术上,远远比搞算力竞争的比特币高效。
- 最后,我们实际上把目光放到广泛的资产上,而不是数字货币上。
6 区块链商业网络环境的要求
在区块链商业网络中,有四个非常重要的组成部分。
- 第一是分布式账本,它实际上是仅仅追加在商业网络中的分布式记录系统。
- 第二是隐私服务,通过隐私服务来控制谁可以看到商业网络,并维持整个区块链的不可变更性。
- 第三是信任。因为我们的交易是被筛选过的商业网络成员认可的,所以这增加了商业网中的信任。因为大家都知道,自己正在和其他成员共享相同的业务程序,所以这又进一步增进了信任。
- 第四是智能合约。智能合约是蕴含商业活动和商业逻辑的形式。实际上,智能合约和传统合同一样,只是用代码写下来,在整个商业网络中共享商业程序。
7 进一步讨论这些要求
分布式账本。所以商业网络的成员都有一份分布式正版的拷贝。但是我们有一个概念,我们决定了在区块链网络中谁有许可权,所以我们实际上可以控制,谁可以看到账本中的哪些内容。所以它实际上是区块链商业网络中的共享记录系统。 这些在网络中增加了信任。
我们也提到了智能合约。它是把传统合约用代码写下来,让电脑可以读懂。这些合约分布在网络中的时候,它们会被确认、签署。一旦它们被部署到网络中,它们就会被执行。当条件达到时,合约就会被执行。所以在智能合约这件事上,没有违约这回事。一旦它出现了,就会实现。
隐私服务,就是控制机密性的一种方式。确保人们只能看到和他们相关的账本,以及它们做生意的方式。这也给我们一种方法,确保区块链里的区块是串联在一起的,不可更改的。所以隐私服务是整个区块链商业网络的核心。
最后是信任。我们需要想一想这个问题。我们的方式是,通过选择特定的成员去支持或认可特定交易的发生,我们用交易上的交易来实现这一点。当一个交易被支持了,它就会加在区块链上。这给了我们一个可证实的审计痕迹,它包含了所有事情:在商业网络中,谁在什么时候拥有什么东西。
这些是通过这四个概念实现的:意见一致(共识)、可追溯、不可更改、定局。接下来我们会学到很多关于信任的知识,以及我们怎样把它变成现实。我们会深入探讨这些概念的更多细节。
very Good !please upvote and follow me.@mdyousuf
Congratulations @foxdriver! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You published your First Post
You got a First Vote
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congratulations @foxdriver! You received a personal award!
Click here to view your Board
Congratulations @foxdriver! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!