随笔分类 -  Blockchain

区块链相关学习笔记
摘要:本文是区块链浏览器系列的第三篇,本文介绍区块链浏览器的主体部分,即区块数据的解析。 这一版本的[区块链浏览器](https://github.com/mengbin92/browser/tree/gin)是基于[gin](https://github.com/gin-gonic/gin)实现的,只提 阅读全文
posted @ 2023-08-15 19:41 落雷 阅读(101) 评论(0) 推荐(0) 编辑
摘要:本文主要是记录我搭建go playground的步骤。 1、安装docker 如果你使用的Ubuntu,docker的安装步骤可以参见这里,这是我之前写的在Ubuntu18.04下安装fabric,其中有docker的安装步骤,这里就不再赘述了。 CentOS下安装docker的,可以参见这里。与U 阅读全文
posted @ 2021-01-17 10:52 落雷 阅读(946) 评论(0) 推荐(0) 编辑
摘要:一般来说,匿名通常跟隐私保护联系在一起。在比特币是基于交易的区块链,系统中没有用户的概念,不要求用户使用真名,可以用公钥产生地址,所以比特币具有一定的匿名性。 但比特币中的交易记录在区块链上,区块链是公开的。虽然使用者可以生成任意多的地址来隐藏自己,但由于所有的交易信息的都是公开的,仍可以通过分析链 阅读全文
posted @ 2020-08-28 10:28 落雷 阅读(1828) 评论(0) 推荐(0) 编辑
摘要:Hash指针 指针保存的是本地内存地址,只在本地计算机上才有意义,发送到其它计算机上就没有意义了。所谓的Hash指针只是一种形象的说法,实际系统中用到的时候只有Hash,没有指针。 那么怎么才能找到前一个区块的内容呢?全节点一般是把这些区块存储在一个key-value的数据库中:key是区块的Has 阅读全文
posted @ 2020-08-28 10:26 落雷 阅读(238) 评论(0) 推荐(0) 编辑
摘要:区块链由一条变为两条或者多条,这一过程被称为分叉。导致分叉的原因有很多,按分叉出现的原因可分为两种: state fork(状态分叉) 挖矿时,两个节点差不多同时挖到了矿,此时就会出现一个临时性的分叉,这是由于对于比特币区块链当前状态出现意见分歧而导致的分叉。分叉攻击(forking attack) 阅读全文
posted @ 2020-08-28 10:25 落雷 阅读(507) 评论(0) 推荐(0) 编辑
摘要:挖矿难度 H(version,target,nonce,Hashpre,MerkleTreeRoot)<=target 比特币中使用的Hash算法是SHA-256,产生的Hash值是256位。即整个输出空间是2256。比特币的挖矿难度的调整,就是调整目标空间占输出空间的比 阅读全文
posted @ 2020-08-28 10:24 落雷 阅读(862) 评论(0) 推荐(0) 编辑
摘要:比特币工作在应用层,它的底层是一个P2P网络。比特币的P2P网络是非常简单的,所有节点都是对等的,不会出现某些P2P网络中所谓的超级节点或者中心节点。 比特币网络的设计原则:simple, robust, but not efficient,即简单,健壮,而不是高效。每个节点都会维护一个邻居节点的集 阅读全文
posted @ 2020-08-28 10:23 落雷 阅读(437) 评论(0) 推荐(0) 编辑
摘要:比特币系统是一个基于交易的账本,这意味着存储在账本中的是一笔笔交易。那么在用户进行转账交易时,首先就需要确保用户所持有的数量要大于或等于将要交易的。这要做的目的是为了避免双花问题。 这种基于交易的账本好处在于隐私保护性比较好,缺点在于每次交易都需要说明币的来源。 在比特币的全节点中,会在内存中维护一 阅读全文
posted @ 2020-08-28 10:22 落雷 阅读(441) 评论(0) 推荐(0) 编辑
摘要:双花问题 在比特币系统中,Hash指针有两个用途:指向前一个区块和指向某笔交易。 比特币支付过程中,每笔交易都必须包含输入和输出。 交易输入中需要包含付款方此次交易的币的来源,付款方的公钥,交易输出包括此次要交易的币的数量以及收款方的地址。 币的来源中会包含付款方的地址,这样可以防止盗币事件的发生。 阅读全文
posted @ 2020-08-28 10:21 落雷 阅读(597) 评论(0) 推荐(0) 编辑
摘要:哈希指针(Hash Pointers) 对于一个结构体而言,指向它的指针存储的是它在内存中的首地址;而指向它的哈希指针,不仅保存这它的首地址,还保存着该结构体内容的哈希值。通过哈希指针,不仅可以找到该结构体,还能查验该结构内容是否被篡改过。 区块链 比特币中存储数据用的是区块链。所谓区块链,可以理解 阅读全文
posted @ 2020-08-28 10:20 落雷 阅读(1114) 评论(0) 推荐(0) 编辑
摘要:比特币又称加密货币,但其实加密货币并没有加密:区块链中的所有信息都是公开的,包括交易的内容、交易的金额以及交易账户的地址。之所以称之为加密货币,主要是因为交易的双方在不与真实世界发生关联的情况下,双方的身份是无法获知的。 比特币中主要用到了密码学中的“哈希”和“签名”。 密码学中用的哈希被称作Cry 阅读全文
posted @ 2020-08-28 10:17 落雷 阅读(865) 评论(2) 推荐(0) 编辑
摘要:原文在这里。文中假定Amazon在区块链上存储用户的购物交易,并以此为例介绍了区块链公链的基本概念和工作原理、区块链与比特币、区块链的优劣以及区块链的前景。本文主要介绍区块链的优劣,举例几个应用场景。 声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 阅读全文
posted @ 2020-07-16 12:26 落雷 阅读(300) 评论(0) 推荐(0) 编辑
摘要:原文在这里。文中假定Amazon在区块链上存储用户的购物交易,并以此为例介绍了区块链公链的基本概念和工作原理、区块链与比特币、区块链的优劣以及区块链的前景。本文主要介绍公链的基本概念和工作原理、区块链与比特币。 声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 阅读全文
posted @ 2020-07-16 09:50 落雷 阅读(589) 评论(0) 推荐(0) 编辑
摘要:最开始知道区块链是在17年初,当时因为项目压力不大,开始研究比特币源码。对于比特币中提到的Proof of Work,当时只是一眼带过,并没有详细查看过相关的代码。在最近的项目中,考虑到性能的要求,需要接入算力池来提高性能,因此实现了一个简单的算力池模型。 下面是使用这个模型简单实现的PoW: 文件 阅读全文
posted @ 2020-07-11 13:53 落雷 阅读(296) 评论(0) 推荐(0) 编辑
摘要:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。 在fabric的chaincode开发时,有时候需要用到第三方库提供的功能。这些库有些是没有go的实现,或开发者只提供了库,这时候就需要从chaincode中调用第三方库。而fa 阅读全文
posted @ 2020-06-27 16:16 落雷 阅读(744) 评论(0) 推荐(0) 编辑
摘要:因为工作的需要,最近了解了下如何通过sdk来操作Chaincode,本文是sdk使用时的一些操作总结。 在fabric网络启动过程中,一般分为“启动网络 → 创建通道 → 加入通道 → 安装链码 → 实例化链码 → 调用链码”。本文以fabric-sdk-go项目中的end_to_end.go为例, 阅读全文
posted @ 2020-06-14 16:46 落雷 阅读(3146) 评论(0) 推荐(1) 编辑
摘要:本文从Fabric-ca源码入手,以newRegisterCommand()函数为例,简单分析client启动时的过程。Fabric-ca源码可以从github.com下载,本文以v1.4.6为例进行简单分析。 与server相似,本文也是从main.go开始: // fabric-ca/cmd/f 阅读全文
posted @ 2020-03-13 15:57 落雷 阅读(516) 评论(0) 推荐(0) 编辑
摘要:本文介绍Fabric-ca server端和client端的交互过程。 在server端执行Start()命令时,会调用registerHandlers()函数,其作用就是注册处理客户端请求的程序: // fabric-ca/lib/server.go // Register all endpoin 阅读全文
posted @ 2020-03-13 15:54 落雷 阅读(644) 评论(0) 推荐(0) 编辑
摘要:本文从Fabric-ca源码入手,简单分析server启动时的过程。Fabric-ca源码可以从github.com下载,本文以v1.4.6为例进行简单分析。 Fabric-ca是有go语言编写的,与C/C++类似,程序都有一个**mian()**函数,不同的是,go的main函数必须存在于pack 阅读全文
posted @ 2020-03-11 11:43 落雷 阅读(983) 评论(0) 推荐(0) 编辑
摘要:// payment project main.go package main import ( "fmt" "strconv" "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger/fabric/pr 阅读全文
posted @ 2019-11-27 10:12 落雷 阅读(957) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示