- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Java语言实现区块链(四)
一、签名和校验比特币通过对交易进行签名和校验,保证交易的安全性。下图展示了数据签名和交易的过程。签名过程:1)使用哈希算法对数据文件进行加密处理,得到一个哈希值;2)使用私钥对哈希值进行加密,生成数字签名;3)最后把数据文件和数字签名一起发送给对方;校验过程:1)对方接收到数据文件和数字签名之后,首先使用相同的哈希算法对数据文件进行加密处理,得到一个哈希值...
2019-04-30 23:38:57 699
原创 Java语言实现区块链(三)
一、增加工作量证明(1)修改Block类,增加nonce字段,并重新生成构造函数。// 区块public class Block { private int id; // 区块ID private String content; // 区块数据 private String hash; // 区块哈希 private int nonce; // 随机数...
2019-04-30 14:02:18 448
原创 Java语言实现区块链(二)
一、增加hash值(1)定义Block类,保存区块信息。// 区块public class Block { private int id; // 区块ID private String content; // 区块数据 private String hash; // 区块哈希 public Block() {} public Block(in...
2019-04-30 13:19:00 444
原创 Java语言实现区块链(一)
一、定义账本(1)定义账本类// 账本public class NoteBook { // 保存区块的集合 private List<String> blocks = new ArrayList<>(); /** 添加创世块 * @param data : 区块数据 */ public void ad...
2019-04-30 12:03:07 1035
原创 Go语言实现ORM框架
一、项目结构beego:请求访问控制器controller:控制器结构体models:定义需要映射建表的结构体orm:实现models中结构体routers:初始化路由入口二、控制器接口设计ControllerInterface:控制器接口,提供Get和Post函数。Controller:公共控制器,实现ControllerInterface接口,并实现了Ge...
2019-04-28 19:46:19 2127
原创 Go语言实现区块链(五)
一、添加钱包(1)定义钱包结构体type Wallet struct { PrivateKey ecdsa.PrivateKey // 私钥 PublicKey []byte // 保存了公钥的X和Y}由于不想在交易中传递公钥本身,提供公钥在网络上的传输效率,所以我们将公钥拆分成两个[]byte变量,然后将他们拼接成一个[]byte后存放在公钥字段中。在verify之前一...
2019-04-28 17:59:44 1107
原创 Go语言实现区块链(四)
一、比特币交易介绍1. 比特币交易与传统银行交易的区别?传统银行的每个账户都有一个数据库保存用户的信息,例如:姓名、卡号、余额等信息。每产生一笔交易,银行系统都会更新用户账户的余额字段。比特币的数据库只有交易,没有用户帐号信息。那么比特币系统如何维护用户的比特币呢?不像银行系统,比特币系统中每个交易都是以之前的交易为基础。用户的比特币零散分布在不同的交易中。如果想要知道某个钱包...
2019-04-28 15:10:17 1099
原创 Go语言实现区块链(三)
一、保存区块链为了能够永久保存区块链数据,这里引入bolt数据库。(1)改写BlockChain结构体type BlockChain struct { //Blocks []*Block // 保存所有区块 Db *bolt.DB Tail []byte // 最后区块的hash}(2)改写NewBlockChain方法,把创世块数据以及最后区块的哈希写入数据库中。...
2019-04-28 14:19:05 1999 4
原创 Go语言实现区块链(二)
一、引入PoW(1)定义Pow结构体// 工作量证明type ProofOfWork struct { Block Block // Target big.Int // 挖矿难度目标值}(2)提供创建函数// 创建方法func NewProofOfWork(block Block) * ProofOfWork { pow := ProofOfWork{ Bloc...
2019-04-28 13:28:14 493
原创 Go语言实现区块链(一)
一、定义创世块并打印区块链是由一个个的区块所组成。我们把第一个区块称之为“创世块”。创世块与其他普通区块不一样的是,创世块没有前置哈希。下面我们定义一个结构体保存创世块的信息。(1)定义区块结构体// 定义区块type Block struct { PrevHash []byte // 上一个区块哈希 Hash []byte // 当前区块哈希 Data ...
2019-04-28 13:13:23 1252
原创 区块链相关知识(二)
一、比特币相关技术1. 加密技术在比特币系统中使用加密技术保证交易的安全性。加密技术分为对称加密和非对称加密。(1)对称加密对称加密就是加密和解密使用相同的密钥。例如:DES、3DES、AES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。特点:效率高,算法公开,安全性取决于密钥大小。密钥越长,安全性就越高,但是效率也越慢。除此以外,密钥分发...
2019-04-28 11:45:43 411
原创 区块链相关知识(一)
一、区块链相关概念1、钱包比特币钱包中保存了地址和密钥。地址相当于现实钱包中的银行卡,密钥相当于银行卡的密码。每一个地址都对应这一个密钥。钱包地址都保存在本地的wallet.dat文件中。wallet.dat文件负责维护钱包的地址和私钥,所以必须要保存好该文件。Bitcoin Core是官方发布的用于管理比特币私钥的客户端。官方下载地址:https://bitcoin....
2019-04-28 10:53:19 1117
jsp论坛程序设计
2014-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人