介绍
基础部分
2.公有链,私有链,联盟链
- 公有链:公有链可以访问到更多用户,网络节点,货币和市场。然而通常有理由更偏好私有链或联盟链(在一群值得信任的参与者中)。世界上所有人都可以阅读和发送交易。如果他们合法都有希望看到自己被包括在内。世界上任何人都能参与到共识形成过程——决定在链条上添加什么区块以及现状是怎样的。作为中心化或准中心化信任的替代品,公有链受加密经济的保护,加密经济是经济激励和加密图形验证的结合,用类似工作量证明或权益证明的机制,遵循的总原则是人们影响共识形成的程度和他们能够影响的经济资源数量成正比。这类区块链通常被认为是"完全去中心化"
- 私人区块链:书写许可对一个组织保持中心化。阅读许可可能是公开的或者限制在任意程度。应用很可能包含对单个公司内部的数据库管理,审查等,因此公共的可读性在很多情况下根本不必要,但在另一些情况下人们又想要公共可读性。 私有链/联盟链可能和公有链毫无联系,他们仍然通过投资以太坊软件开发,对以太坊整体生态系统有利。经过一段时间,这会转变成软件改善,知识共享和工作机会。
- 联盟链:共识形成过程由预先选择的一系列的节点所掌控,例如,设想一个有15个金融机构的团体,每个机构都操作一个节点,为了使区块生效,其中的10个必须签署那个区块。阅读区块链的权利可能是公开的,或仅限于参与者,也有混合的路径,比如区块的根散表和应用程序编程接口一起公开,使公共成员可以进行一定量的查询,重获一部分区块链状态的加密图形证明。这类区块链被认为是"部分去中心化"。
3.基本原理
4.数据库相关问题
1.区块链数据库存在哪里?
- 可以认为区块链节点将区块链数据保存在 MySQL(或其它数据库),MySQL 将区块链数据保存在磁盘
- 全节点保存所有数据,也可以使用轻量级的不用下载全部数据
- 历史交易数据是所有的全节点都要保存的
- 最新状态数据是所有节点都要保存的
- 节点可以不必保存历史状态数据
2.链上数据:
- 链上数据是直接或间接由区块链共识产生的数据。
3.数据上链
如何上链:
- 以太坊:产生一笔交易,携带一些信息,被打包成区块
- 智能合约处理:合约逻辑处理以及修改状态梅克尔树等流程
几种方式: - 内容存证:所谓内容存证,就是指直接把我们要存储的内容直接放入到区块链之中,不过,大家都知道,区块链上的存储空间是极其宝贵和有限,所以这些内容一般不会太大,因为区块链上的公开透明性,所以把内容直接上链就代表着这些内容都是公开的,所以可能会适合做一些声明、版权,而不适合大量内容的文字或者有隐私需求的内容。
- 哈希存证:所谓哈希存证就是把文件内容的哈希值进行保存上链。(SHA256)
- 链接存证:链接存证相当于哈希存证基础上有添加了文件的URI地址,这样区块链上上就存储了“文件地址+文件数字指纹”这两套东西了。
- 隐私存证:所谓隐私存证就是把数据进行加密之后存储在区块链之上,这是为了应对区块链上的数据都是公开透明而采取的策略。一般对数据加密都采用的是对称加密,所谓对称加密是指加密和解密的秘钥是一个,这样的加密方案比较简单、快速,可以适合大量数据的加密。
- 分享隐私存证:分享隐私存证相当于隐私存证的更进一步,把文件进行加密之后,同时还要把加密的秘钥再使用非对称加密再加密一次。也就是说,第一次对文件内容的加密是采用对称加密,第二次对秘钥加密就是非对称加密。所谓非对称加密就是有两把钥匙:公钥和私钥。
5.以太坊定义
- 以太坊:是可编程的区块链。它并不是给用户一系列预先设定好的操作(例如比特币交易),而是允许用户按照自己的意愿创建复杂的操作。这样一来,它就可以作为多种类型去中心化区块链应用的平台,包括加密货币在内但并不仅限于此。
6.参考的相关文档
1.以太坊中文文档
2.什么是区块链
3.比特币防伪,防篡改,双重支付等问题
4.防范恶意节点
5.truffle框架中文文档
6.geth相关(下载这个建议连接手机热点,不然一直不成功)
7.其他钱包客户端见具体需求