学习目标:
区块链的概念与定义
- 编程语言
编程语言:
源自登联社区
目前的主流语言都有Web3的实现,列举参考:
- JavaScript Web3.js
- Python Web3.py
- Haskell hs-web3
- Java web3j
- Scala web3j-scala
- Purescript purescript-web3
- PHP web3.php
- PHP ethereum-php
另一个切入点是 智能合约的开发,在以太坊现在推荐的语言是Solidity,Solidity语法如下:
contract Hello {
function hello() public returns(string) {
return "Hello World";
}
}
感谢大佬带小白入门—登联社区
区块链
区块链的定义
区块链就是一个不断增长的全网总账本,每个完全节点都拥有完整的区块链,并且,节点总是信任最长的区块链。区块链是一种不可篡改的共享分类账,有助于推动业务网络中记录交易和跟踪资产的过程。
Web2 | Web3 |
---|---|
客户端UI表现 | 客户端UI表现 |
后端服务程序 | 智能合约 |
客户端UI <=> 客户端UI
HTTP <=> RPC
后端服务程序 <=> 智能合约
Nginx/Apache <=> 节点
区块链关键元素
- 分布式分类账技术
所有网络参与者都可以访问分布式分类账及其不可篡改的交易记录。借助这种共享分类账,交易只记录一次,可消除传统业务网络典型的重复工作。 - 不可篡改记录
交易记录至共享分类账后,任何参与者都不能更改或篡改交易。如果交易记录中包含错误,则必须添加新交易来撤销错误,然后两笔交易均可见。 - 智能合约
为了加快交易速度,区块链上存储并自动运行了一组称为智能合约的规则。智能合约可定义企业债券转让的条件,包括支付旅行保险的条款等等。
加速了解区块链
- 什么是区块链?
深入了解区块链技术的基础知识:数据块中如何包含代表任何有价值事物的数据,它们如何在不可篡改的数据链中按时间顺序连接在一起,以及区块链与比特币等加密货币之间有何差异。 - 区块链扩展
了解区块链的去中心化本质如何使其在传统的记录保存方法中脱颖而出,探索许可区块链对商业交易的价值,以及区块链如何能促进信任和并提高透明度。
作者理解:传统记录保存方法会因为多人实时公用导致错乱,而区块链的方法记录在原本错误区块上添加修正块,两个区块都会被记录保留;因而存在绝对透明度
- 可以追溯的区块链–食品行业的应用
食品行业只是通过区块链技术实现转型的众多行业之一。了解该行业如何追溯食品的种植、采摘、运输和加工的时间、地点和方式,同时保护网络参与者的数据。
实现真正的可溯源到每个节点
- 区块链建立信任
区块链之所以能建立信任,是因为它代表了真实的共享记录。每一个区块还有一个Merkle哈希用来确保该区块的所有交易记录无法被篡改。区块链中的主要数据就是一系列交易,第一条交易通常是Coinbase交易,也就是矿工的挖矿奖励,后续交易都是用户的交易。区块链的不可篡改特性是由哈希算法保证的。 - 区块链的增长
主要数据就是一系列交易,第一条交易通常是Coinbase交易,也就是矿工的挖矿奖励,后续交易都是用户的交易。
区块链的不可篡改特性是由哈希算法保证的。将每个交易记录利用哈希算法打包,结合生成最后的Merkle Hash。
区块链依靠安全的哈希算法保证所有区块数据不可更改;
交易数据依靠Merkle Hash确保无法修改,整个区块依靠Block Hash确保区块无法修改;
工作量证明机制(挖矿)保证修改区块链的难度非常巨大从而无法实现。
区块链网络的类型
-
公有区块链网络
公有区块链是任何人都可以加入和参与的区块链,例如比特币。缺点可能包括需要大量的计算能力、交易隐私性不足或极低甚至没有安全性。这些都是企业区块链用例的重要考虑因素。 -
私有区块链网络
私有区块链网络,类似于公有区块链网络,是一种去中心化的点对点网络。不过,私有区块链网络由组织管理,控制谁可以参与网络、执行共识协议并维护共享分类账。根据用例情况,这可以显著增强参与者之间的信任和信心。私有区块链可以在企业防火墙后运行,甚至可以在本地托管。 -
许可式区块链网络
建立私有区块链的企业通常会建立许可式区块链网络。值得注意的是,公有区块链网络也可以成为许可式网络。这对谁可以参与网络以及可以参与哪些交易施加了限制。参与者需要获得邀请或许可才能加入。 -
联盟区块链
多个组织可以分担维护区块链的责任。这些预选组织可决定谁能够提交交易或访问数据。如果所有参与者都需要获得许可,并对区块链负有共同责任,那么联盟区块链会是企业的理想选择。
总结
提示:这里统计学习计划的总量
例如:
- 区块链定义
- 区块链语言
- 区块链类型