比特币中的交易可谓是比特币的最核心部分.比特币由交易产生,而区块就是用来存储交易的.所以,交易是比特币存在的载体,同时也是比特币中最复杂的部分.交易的运作层层相扣,各个部分缺一不可,十分严密,由此体现出了中本聪高超的设计技巧.接下来将会花费多个章节逐步介绍bitcoin中的交易 比特币或者类似的分布式系统在设计的时候会有一个和普通设计中有极大区别的地方: 分布式中的每个节点既是 client 也是 server. 所以在分布式系统的设计中,使用类来描述对象的时候,有时就要分清哪些情况下这个类是作…
bitcoin 源码解析 - 交易 Transaction(三) - Script 之前的章节已经比较粗略的解释了在Transaction体系当中的整体运作原理.接下来的章节会对这个体系进行分解,比较详细描述细节的构成. 本章将要详细分析bitcoin交易中的交易脚本-script到底是什么东西. 回顾和概要 在前面的文章中提到,在bitcoin的体系中,一个交易是被发布到比特币的整体系统中的,而能够操控之前交易的的TxOut(被锁住的coin),是需要能够操控这个TxOut的人提供"钥匙&qu…
bitcoin 源码解析 - 交易 Transaction(三) - Script 之前的章节已经比较粗略的解释了在Transaction体系当中的整体运作原理.接下来的章节会对这个体系进行分解,比较详细描述细节的构成. 本章将要详细分析bitcoin交易中的交易脚本-script到底是什么东西. 回顾和概要 在前面的文章中提到,在bitcoin的体系中,一个交易是被发布到比特币的整体系统中的,而能够操控之前交易的的TxOut(被锁住的coin),是需要能够操控这个TxOut的人提供"钥匙&qu…
这篇文章我断断续续写了呃···· 应该快三个星期了? 所以前后的风格可能差别相当大.真是十分的怠惰啊··· 最近实在是不够努力.用python重写bitcoin的项目也卡在网络编程部分(这方面真是我的软肋) 这篇文章通篇都是文字-_-, 没有其他东西,这个样子给读者会造成很大的压力吧···· 虽然题目所说的是原理,但是实际上一部分原理已经在前面几篇文章都有过一些零散的说明了,感觉写出来又有点重复..所以最好先读过前面几篇可能看起来更好点..等我把所有的东西都写完后应该会重新整理,然后重新写一份更…
以太坊go-ethereum签名部分源码解析 golang标准库里的crypto/ecdsa椭圆曲线加密算法所提供的函数有: ecdsa.PublicKey结构体通过持有一个elliptic,Curve接口的实现体,可以提供椭圆曲线的所有属性,和相关操作:PublicKey的成员(X,Y),对应于算法理论中公钥的坐标. func GenerateKey(c elliptic.Curve, rand io.Reader) (*PrivateKey, error) elliptic.Curve接口声…
IPerf是一个开源的测试网络宽带并能统计并报告延迟抖动.数据包丢失率信息的控制台命令程序,通过参数选项可以方便地看出,通过设置不同的选项值对网络带宽的影响,对于学习网络编程还是有一定的借鉴意义,至少可以玩上一段时间. IPerf开始出现的时候是在03年,版本是1.7.0,在网上找到的仅有的系列源码解析篇 http://blog.chinaunix.net/uid/11568125/cid-131106-abstract-1.html 就是基于1.7.0 进行介绍和解析的,貌似1.7.0还是使用…
简介 Exchanger,并发工具类,用于线程间的数据交换. 使用 两个线程,两个缓冲区,一个线程往一个缓冲区里面填数据,另一个线程从另一个缓冲区里面取数据.当填数据的线程将缓冲区填满时,或者取数据的线程将缓冲区里的数据取空时,就主动向对方发起交换缓冲区的动作,而交换的时机是,一个缓冲区满,另一个缓冲区空.代码如下,很简单,没有加注释. public class FillAndEmpty { Exchanger<DataBuffer> exchanger = new Exchanger<…
之前说完了链码的安装过程,接下来说一下链码的实例化过程好了,再然后是链码的调用过程.其实这几个过程内容已经很相似了,都是涉及到Proposal,不过整体流程还是要说一下的. 同样,切入点仍然是fabric/peer/main.go文件中的main()方法: #这一句定义了关于通过Peer节点操作链码的命令 mainCmd.AddCommand(chaincode.Cmd(nil)) 然后是fabric/peer/chaincode/chaincode.go文件中的Cmd()方法,这里则是具体的操…
      看了看客户端安装链码的部分,感觉还是比较简单的,所以在这里记录一下.       还是先给出安装链码所使用的命令好了,这里就使用官方的安装链码的一个例子: #-n 指定mycc是由用户定义的链码名字,-v 指定1.0是链码的版本,-p ...是指定链码的路径 peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02  …
Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台-  什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕,该场次的秒杀活动都会结束.这种秒杀,对时间不是特别严格,只要下手快点,秒中的概率还是比较大的. 淘宝以前就做过一元抢购,一般都是限量 1 件商品,同时价格低到「令人发齿」,这种秒杀一般都在开始时间 1 到 3 秒内就已经抢光了,参与这个秒杀一般都是看运气的,不必太强求…