合集-区块链
摘要:1. Gossip协议基础 1.1 什么是分布式系统 分布式系统(Distributed System)是由多台计算机或计算节点组成的计算机系统,这些计算节点通过网络连接在一起,并协同工作以完成共同的任务或提供服务。与单一计算机系统不同,分布式系统中的计算节点可以分布在不同的地理位置。 以下是分布式
阅读全文
摘要:本文介绍Ubuntu 18.04环境下如何配置Fabric开发环境。 安装Golang 因为Fabric是基于Go语言开发的,所以首先需要配置好Golang开发环境。 由于某些原因,国内无法从Golang官网上下载Golang,不过好在国内的Golang开发者们搭建的可供国内Golang爱好者分享的
阅读全文
摘要:因为工作的需要,最近了解了下如何通过sdk来操作Chaincode,本文是sdk使用时的一些操作总结。 在fabric网络启动过程中,一般分为“启动网络 → 创建通道 → 加入通道 → 安装链码 → 实例化链码 → 调用链码”。本文以fabric-sdk-go项目中的end_to_end.go为例,
阅读全文
摘要:比特币又称加密货币,但其实加密货币并没有加密:区块链中的所有信息都是公开的,包括交易的内容、交易的金额以及交易账户的地址。之所以称之为加密货币,主要是因为交易的双方在不与真实世界发生关联的情况下,双方的身份是无法获知的。 比特币中主要用到了密码学中的“哈希”和“签名”。 密码学中用的哈希被称作Cry
阅读全文
摘要:原文在这里。文中假定Amazon在区块链上存储用户的购物交易,并以此为例介绍了区块链公链的基本概念和工作原理、区块链与比特币、区块链的优劣以及区块链的前景。本文主要介绍区块链的优劣,举例几个应用场景。 声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
阅读全文
摘要:原文在这里。文中假定Amazon在区块链上存储用户的购物交易,并以此为例介绍了区块链公链的基本概念和工作原理、区块链与比特币、区块链的优劣以及区块链的前景。本文主要介绍公链的基本概念和工作原理、区块链与比特币。 声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA
阅读全文
摘要:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。 在fabric的chaincode开发时,有时候需要用到第三方库提供的功能。这些库有些是没有go的实现,或开发者只提供了库,这时候就需要从chaincode中调用第三方库。而fa
阅读全文
摘要:一般来说,匿名通常跟隐私保护联系在一起。在比特币是基于交易的区块链,系统中没有用户的概念,不要求用户使用真名,可以用公钥产生地址,所以比特币具有一定的匿名性。 但比特币中的交易记录在区块链上,区块链是公开的。虽然使用者可以生成任意多的地址来隐藏自己,但由于所有的交易信息的都是公开的,仍可以通过分析链
阅读全文
摘要:Hash指针 指针保存的是本地内存地址,只在本地计算机上才有意义,发送到其它计算机上就没有意义了。所谓的Hash指针只是一种形象的说法,实际系统中用到的时候只有Hash,没有指针。 那么怎么才能找到前一个区块的内容呢?全节点一般是把这些区块存储在一个key-value的数据库中:key是区块的Has
阅读全文
摘要:区块链由一条变为两条或者多条,这一过程被称为分叉。导致分叉的原因有很多,按分叉出现的原因可分为两种: state fork(状态分叉) 挖矿时,两个节点差不多同时挖到了矿,此时就会出现一个临时性的分叉,这是由于对于比特币区块链当前状态出现意见分歧而导致的分叉。分叉攻击(forking attack)
阅读全文
摘要:比特币工作在应用层,它的底层是一个P2P网络。比特币的P2P网络是非常简单的,所有节点都是对等的,不会出现某些P2P网络中所谓的超级节点或者中心节点。 比特币网络的设计原则:simple, robust, but not efficient,即简单,健壮,而不是高效。每个节点都会维护一个邻居节点的集
阅读全文
摘要:比特币系统是一个基于交易的账本,这意味着存储在账本中的是一笔笔交易。那么在用户进行转账交易时,首先就需要确保用户所持有的数量要大于或等于将要交易的。这要做的目的是为了避免双花问题。 这种基于交易的账本好处在于隐私保护性比较好,缺点在于每次交易都需要说明币的来源。 在比特币的全节点中,会在内存中维护一
阅读全文
摘要:双花问题 在比特币系统中,Hash指针有两个用途:指向前一个区块和指向某笔交易。 比特币支付过程中,每笔交易都必须包含输入和输出。 交易输入中需要包含付款方此次交易的币的来源,付款方的公钥,交易输出包括此次要交易的币的数量以及收款方的地址。 币的来源中会包含付款方的地址,这样可以防止盗币事件的发生。
阅读全文
摘要:哈希指针(Hash Pointers) 对于一个结构体而言,指向它的指针存储的是它在内存中的首地址;而指向它的哈希指针,不仅保存这它的首地址,还保存着该结构体内容的哈希值。通过哈希指针,不仅可以找到该结构体,还能查验该结构内容是否被篡改过。 区块链 比特币中存储数据用的是区块链。所谓区块链,可以理解
阅读全文
摘要:Merkle 树(Merkle Tree)是一种树状数据结构,通常用于验证大规模数据集的完整性和一致性。它的名字来源于其发明者 Ralph Merkle。Merkle 树在密码学、分布式系统和区块链等领域得到广泛应用,尤其在区块链中,它用于验证交易和区块的完整性,确保数据不被篡改。 下面是 Merk
阅读全文
摘要:表象:Return schema invalid. required items must be unique [recovered] 虽然 Fabric v2.2 已经发布了很久了,但之前因为项目历史问题,一直使用的都是 Fabric v1.4.8,所以智能合约也一直使用的都是 github.co
阅读全文
摘要:本文是区块链浏览器系列的第五篇,项目完整代码在[这里](https://github.com/mengbin92/browser/tree/main)。 在[上一篇文章](https://mengbin.top/2023-08-20-browser2/)中给浏览器增加了简单的用户认证,至此浏览器的基
阅读全文
摘要:## 简介 Hyperledger Fabric的Idemix是一个基于密码学的身份混淆系统,它提供了一种在区块链网络中实现用户隐私的方法。Idemix的主要特性是它的零知识证明系统,这是一种允许用户证明他们拥有某些属性,而无需透露任何其他信息的技术。 以下是一些更详细的关于Idemix的信息: 1
阅读全文
摘要:本文是区块链浏览器系列的第四篇。 在[上一篇文章](https://mengbin.top/2023-08-13-blockBrowser/)介绍如何解析区块数据时,使用`session`对客户端上传的pb文件进行区分,到期后自动删除。 在这片文章中,会着重介绍下认证系统的实现,主要分为三部分: -
阅读全文