一、选择对应的钱包安装程序

浏览器打开 https://electrum.org/#download 选择windwos版本的安装程序

点击下载,并安装

二、运行Electrum的 testnet版本,创建钱包

提示输入钱包名称

下一步:标准钱包

创建一个新的密语种子

下一步,选择老式地址

记下密语种子

下一步,再输入密语种子

输入密码

下一步,进入主界面

点击“地址”选项卡,里面已经创建了很多收款地址以及找零地址,都是以m开头的地址均为测试地址

显示余额都是零,下一步我们就为其中一个收款地址获取测试比特币

三、获取测试币

浏览器打开https://kuttler.eu/en/bitcoin/btc/faucet/

发现使用了google的验证码服务,并且显示不出来图片,需要安装GOOGLE浏览器的一个gooreplacer插件,这个插件的功能用于将网页中的文件地址重定向至其他地址。

浏览器打开https://www.chromefor.com/gooreplacer_v3-10-0/

一个浏览器插件下载网站,下载插件,要选择本网站下载

下载成功后,是一个.crx为后缀的文件

打开google浏览器,选择扩展程序,直接将文件拖入浏览器总,浏览器自动安装插件

成功后,显示如下界面

点击"add"添加一个地址重定向规则

也就是将提供验证码服务的www.google.com/recaptcha地址改为recaptcha.net/recaptcha,这样国内就可以访问了

再打开测试币网站https://kuttler.eu/en/bitcoin/btc/faucet/

已经成功显示出来了,然后输入我们的收款地址,通过验证后,获取

显示成功,回到Electrum界面,显示钱包地址已经有余额了

我们右键点击“地址”,选择“详细信息”,打开这个地址的详细信息界面

可以看到这个地址的公钥,以及交易历史记录,目前只有我们选择获取测试币的这笔记录,右键点击这条记录,选择“详细信息”,显示这笔交易的详细信息

本交易的HASH值、目前经过几个区块确认、被哪个区块打包的、交易的输入和输出

四、转账交易

现在地址列表里复制一个收款地址,然后点击“发送”选项卡进入转账界面

将复制的地址粘贴到支付给文本框里,作为收款人地址,金额随便填写小于你钱包余额的一个数字,费用既手续费,可以设置,手续费越高,那么被矿工及时打包上链的概率就越大,因为收付费是给矿工的

我们点击“预览”

bf3c198243b0d79d10594189daafaef053e9eb97e3a3061adafb2dfebe41c827:19 这个表示,交易的输入是我获取的测试币的那笔交易的ID:和输出的位置

输出里面为收款的地址以及找零的地址和金额。再点击“签名”,给这笔交易用自己的私钥签名,再点击“广播“

显示付款已经发送,并返回这笔交易的HASH,回到地址列表可以看到收款地址已经有了10比特币余额,找零地址转入了剩余的110比特币

回到历史界面,此交易的记录已经显示,点击详细信息

因为是转账到我自己钱包里的一个地址,所以这里显示的发送金额是0

我们还可以右键点击交易记录,选择“使用区块浏览器查看”,可以查看更详细的信息

点击DETAILS

显示了本交易的输入和输出脚本。

可以看到交易输入里有输入脚本,以及上一个交易的输出脚本,这笔交易在全节点的的验证过程为:先执行输入脚本,再执行上一个交易的输出脚本,来验证这笔交易有效性

输入脚本

OP_PUSHBYTES_72 3045022100841e9bcc720fb3e689ee5ed19bda95c531a38e981e3c50c587c6c126acb084940220579fff024189bc73afe5b2ddcf2194685ea1025fba16fd95fa7af155fe90927c01
OP_PUSHBYTES_33 03ffeeb710d76f6bf11c6534749f1407da6805be63697bff919995b7db2c6a8c32

上一个交易输出脚本

OP_DUP
OP_HASH160
OP_PUSHBYTES_20 9c88615abc0525dca340f038a3f3b7b5bfe05fd3
OP_EQUALVERIFY
OP_CHECKSIG

执行过程为:

OP_PUSHBYTES_72 3045022100841e9bcc720fb3e689ee5ed19bda95c531a38e981e3c50c587c6c126acb084940220579fff024189bc73afe5b2ddcf2194685ea1025fba16fd95fa7af155fe90927c01:将用私钥签名的信息入栈

OP_PUSHBYTES_33 03ffeeb710d76f6bf11c6534749f1407da6805be63697bff919995b7db2c6a8c32:将公钥入栈

OP_DUP :复制一个栈顶元素,并入栈

OP_HASH160:弹出栈顶元素,并作hash160运算 H(Public Key),得到账户地址,并入栈

OP_PUSHBYTES_20 9c88615abc0525dca340f038a3f3b7b5bfe05fd3 :将收款账户的公钥HASH既收款账户地址入栈。

OP_EQUALVERIFY:弹出栈顶两个元素,并比较他们是否相等,也就是验证付款方账户是否正确,确实是上一个交易的收款方,此时栈内只剩下了付款方公钥以及付款方私钥的签名

OP_CHECKSIG:弹出栈顶两个元素,用公钥进行验签。整个验证交易过程结束。

使用比特币轻量钱包Electrum的更多相关文章

  1. Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器

    最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5+jQuery等流 ...

  2. 一种简单,轻量,灵活的C#对象转Json对象的方案

    简单,是因为只有一个类 轻量,是因为整个类代码只有300行 灵活,是因为扩展方式只需要继承重写某个方法即可 补充:修正无法处理可空值类型的bug 首先我将这个类称之为JsonBuilder,我希望它以 ...

  3. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)

    本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...

  4. Dapper.NET——轻量ORM

    Dapper.NET使用 http://www.cnblogs.com/yankliu-vip/p/4182892.html 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Da ...

  5. 编写轻量ajax组件01-对比webform平台上的各种实现方式

    前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏 ...

  6. Vue.js:轻量高效的前端组件化方案

    转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ...

  7. 基于netty轻量的高性能分布式RPC服务框架forest<下篇>

    基于netty轻量的高性能分布式RPC服务框架forest<上篇> 文章已经简单介绍了forest的快速入门,本文旨在介绍forest用户指南. 基本介绍 Forest是一套基于java开 ...

  8. 基于netty轻量的高性能分布式RPC服务框架forest<上篇>

    工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...

  9. 轻量、强大的代码编辑器控件-WinForm完美版

    前段时间做个小项目需要用到一个代码编辑器控件,但网上搜了半天,居然没发现一个完全满意的编辑器.现有的一些编辑器有: FastedTextBox 优点:1.  轻量. 2. 样式美观. 3. DEMO完 ...

随机推荐

  1. DS1302时钟基础使用(含代码)

    了解其管脚 X1 X2 32.768KHz 晶振管脚 GND 地 RST 复位脚 I/O 数据输入/输出引脚,具有三态 SCLK 串行时钟 Vcc1,Vcc2(备用电源供电) 电源供电管脚 DS130 ...

  2. Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II)

    Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II) 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n ...

  3. 【ARM-Linux开发】Linux的SOCKET编程详解

    Linux的SOCKET编程详解 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进 程之间既互不干扰又协调一致工作,操作系 ...

  4. ZOJ Problem Set - 1008

    1.翻译及思路 http://blog.csdn.net/dapengbusi/article/details/7313785 http://acm.sdut.edu.cn/bbs/read.php? ...

  5. Javascript学习笔记——操作浏览器对象

    Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...

  6. [图像分割] OpenCV 的 GrabCut 函数使用和源码解读

    转自 zouxy09 GrabCut 原理参考这里,以下为 GrabCut 源码: ——看别人写的好的代码也很享受,干净利落,有些处理的细节也学习一下. /*M//////////////////// ...

  7. 深拷贝 & 浅拷贝

    浅拷贝: class Professor { String name; int age; public Professor(String name, int age) { this.name = na ...

  8. matplotlib库的基本使用与折线图

    matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 基本使用: x和y的长度必须一致 figure()方法用来设置图片大小 x,y ...

  9. Vue.js学习笔记-script标签在head和body的区别

    初学JavaScript,项目需要没有系统学习,只能边查资料边码代码,埋下的坑不知道有多少,还是建议时间充足的情况下系统的将Javascript学习一遍 ,涉及的HTML知识也务必了解. 问题 最开始 ...

  10. 查询集 QuerySet

    1 概念 Django的ORM中存在查询集的概念. 查询集,也称查询结果集.QuerySet,表示从数据库中获取的对象集合. 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): a ...