让我们通过构建一个应用程序来展示区块链是如何工作的。根据维基百科的描述,区块链是:一种分布式数据库,用于维护不断增长的记录列表,称为块。这听起来似乎不错,但它到底是如何工作的? 为了说明区块链如何工作,我们将使用名为Blockchain CLI的开源命令行界面。 我还在这里构建了一个基于浏览器的版本。 安装命令行界面版本 如果还没有Node.js,先安装一下。 然后在终端中运行以下命令: 你应该看...

1.编译 2.运行 3.查看web3代码 4.赋值web3部署代码到eth命令行 报错:先解锁账户personal.unlockAccount(eth.accounts[0]) 合约被部署到挖矿挖出来的区块中了。 合约在私有链上部署成功!...

1、区块是区块链的基础单元 区块链由若干个区块组成,区块是区块链的基础单元 2、区块链中区块的基本属性 区块6个属性的说明-Index 区块的索引值,区块链中的唯一键 区块6个属性的说明-Timestamp 区块的时间戳,用于区分区块的产生时间 区块6个属性的说明-Hash 区块的hash值是整个区块各个内容整体计算出的hash值 区块6个属性的说明-Previous Hash 前一个区块的has...

深入理解区块链技术,从比特币、以太坊到最新公链 原创: Andy.Chen    阅读大概需要5分钟 背景 自2008年中本聪提出比特币概念,到2009年比特币的诞生,这代表着首个基于区块链技术去中心化交易模式的加密货币实现,同时吸引了无数人的目光聚焦在区块链技术上。在这里我们来先理解几个概念,什么是加密货币、数字货币、电子货币、虚拟货币? 数字货币:广泛理解是基于数...

BlockChain Demo 打开比特币Demo演示网页区块链Demo演示地址,我们可以看到如下页面。 点击开始演示 接下来是BlockChain Demo 2.0的新功能介绍 关于Demo功能区的介绍 并附有JavaScript代码和gitHubDemo地址 显示每个区块存储的信息 介绍区块链中区块的索引 介绍创建区块时候的时间戳 介绍区块中hash散列加密 介绍区块hash散列中前导零也就是...

面向过程编程 C语言是面向过程的编程语言。(但是C语言同样也可以进行面向对象编程,假如你的功底很深的话) 按照预设的顺序一步一步的去执行的过程,就是面向过程编程 例如:我想听音乐 打开电脑 打开音乐播放器 搜索歌曲 播放歌曲 暂停 下一首 音量调节 关闭音乐播放器 关闭电脑 面向对象编程 语言很多,包括:C++,Java,iOS, C#…. 随着开发年限的增涨,对面向对象的思想也不会...

一、软件下载与安装        1、Oracle VM VirtualBox 是一款虚拟机软件。(官网下载地址https://www.virtualbox.org/wiki/Downloads)        2、Vagrant 是一个可创建轻量级、高复用性和便于移植的开发环境的工具,用于创建和部署虚拟化开发环境。(...

转载自http://www.bugclosed.com/post/38 1.背景 在去中心化的区块链中进行交易(转账)是怎么实现的呢?本篇通过blockchain_go来分析一下。需要进行交易,首先就需要有交易的双方以及他们的认证机制,其次是各自的资金账户规则。在分布式账本系统里面,需要有机制能够准确验证一个用户身份以及对账户资金的精确计算,不能出现一丁点差错。在区块链中交易通过Transacti...

0 介绍 比特币区块链的核心就是交易,区块链唯一的目的就是用一种安全可信的方式去存储交易,交易一经创建就无法更改。这章中我们将在区块链中引入交易。 1 比特币中的交易 如果你是开发网络应用的程序员,若让你开发一个在线支付交易,你多半会在数据库中创建俩张表:账户表和交易表。账户表中将会存储用户账户信息,比如个人信息和余额。交易表中将会存储交易信息,比如钱从一个账户转账给另一个账户。但是在比特币系统中...

Solidity Types 布尔(Booleans) bool: 可能的取值为常量值true和false。 支持的运算符: ! 逻辑非 && 逻辑与 || 逻辑或 == 等于 != 不等于 备注:运算符&&和||是短路运算符,如f(x)||g(y),当f(x)为真时,则不会继续执行g(y),在f(x)&&g(y)表达式中,当f(x)为false时,...

地址Address 以太坊钱包地址位数验证 以太坊中的地址的长度为20字节,一字节等于8位,一共160位,所以address其实亦可以用uint160来声明。 我的以太坊钱包地址为0xDF12793CA392ff748adF013D146f8dA73df6E304,0x代表十六进制,我们将DF12793CA392ff748adF013D146f8dA73df6E304拷贝,如下图所示,将其进行二进...

    比特币使用的共识机制为工作量证明机制,此机制已经经历了数十年的验证了,虽然原理简单粗暴,但是不得不承认它的安全性与可靠性。下面将实现的是区块链中的pow机制: pow包 上一章节的代码有些许的改变:     在block包里面的实例化区块的函数我把它移到了pow包里了,防止串包报错。然后就是结构体Block增加了随机数Nonce字...

区块链的作用就是要实现交易,一种无法篡改永久保存的交易。比特币区块链还没有像以太坊一样已经实现了账户的概念,比特币区块链上的交易双方是地址,地址背后才是人,人和地址不是一一对应的关系,一个人可以拥有很多比特币的地址。           ——注:底端有完整的代码,代码里面有详细的注解,...

在上一章节中,我们把简单的用户定义的字节当做地址来使用,比如在上一 章我测试用到的zyj和dxn。在这一章节中我们要正真的去实现区块链中的地址。     大家应该还记得上一章中提到过区块链中的交易是地址与地址之间的,地址的背后才是我们人来操作,因此我们会发现一个问题,就是在上一章中的这些我们自定义的地址并没有什么意义,因为随便谁都可以使用,转移该地址中的getbaln...

String字符串 案例 字符串可以通过""或者''来表示字符串的值,Solidity中的string字符串不像C语言一样以\0结束,比如'goddreamwt'这个字符串的长度就为我们所看见的字母的个数,它的长度为10。 备注:string字符串不能通过length方法获取其长度。 固定大小字节数组(Fixed-size byte arrays) 固定大小字节数组可以通过 b...