20181117--深入浅出区块链非对称加密
银行系统 我们先来回顾下现实的银行系统: 首先我们需要把我们的个人信息(如身份证)给银行,银行给我们开立相对应的账户,银行在开户的时候确立了对账户的所有权。 进行支付的时候,银行对交易双方完成转账(银行在开户的时候已经知道我们对应的账户) 匿名账本 那么比特币如何在没有第三方银行的参与下,在确保隐私的同时如何确定账户所有权的呢? 实际上比特币的账户是用地址来表示,账本上不显示个人信息,转账是把比特币从一个地址转移到另一个地址。 转账记录如下: {
"付款地址":"2A39CBa2390
20181117--深入浅出区块链工作量证明
记账工作 大家争相记账,大家一起记账就会引起问题:出现记账不一致的问题,比特币系统引入工作量证明来解决这个问题,规则如下: 一段时间内(10分钟左右,具体时间会与密码学难题难度相互影响)只有一人可以记账成功 通过解决密码学难题(即工作量证明)竞争获得唯一记账权 其他节点复制记账结果 不过在进行工作量证明之前,记账节点会做进行如下准备工作: 收集广播中还没有被记录账本的原始交易信息 检查每个交易信息中付款地址有没有足够的余额 验证交易是否有正确的签名 把验证通过的交易信息进行打包记录 添加一个奖
20181117——深入浅出区块链 一种去中心化、点对点的网络架构
中心化网络 这是一种典型的星型(“中心化”)结构,我们常见B/S及C/S网络架构就是这种模型,C1 、C2 、C3等之间没法直接的连接,C节点如果要连接必须要通过中心化S节点做为桥梁。 中心化节点充当服务者、中介作用,比如我们没有办法把资金直接从一个人转移给另一个人,必须通过银行这个中介。 P2P网络 P2P网络是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点,每个网络节点以扁平(flat)的拓扑结构相互连通。 对比中心化网络,在P2P网络中不存在任何
20181117--深入浅出区块链Merkle树及简单支付验证分析
Merkle树 验证交易的过程和文件验证很相似,可以人为每个交易是一个小数据块,但比特币使用Merkle树的方式进行验证,相对于哈希列表,Merkle树是一种哈希二叉树,它的明显的一个好处是可以单独拿出一个分支来(作为一个小树)对部分数据进行校验,更加高效。 我们回看下上面的区块结构图,区块体就包含这样一个Merkle树,Merkle树被用来归纳一个区块中的所有交易。 每个叶子节点是每个交易信息的哈希,往上对相邻的两个哈希合并成字符串再哈希,继续类似的操作直到只剩下顶部的一个节点,即Me
20181117--RSA算法数学原理分析
非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。 所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。 RSA算法原理 RSA算法的基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。 如:有很大质数p跟q,很容易算出N,使得 N = p * q, 但给出N, 比较难找p q(没有很好的方式, 只有不停的尝试) 这其实也是单向函数的概念 下面来看看数学演算过程: 选取两个大质数p,q,计算N = p q 及 φ (
20181117--区块链2.0以太坊开发
以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。 智能合约 智能合约可以理解为在区块链上可以自动执行的(由消息驱动的)、以代码形式编写的合同(特殊的交易)。 智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。 目前除数字货币之外,真正落地的应用还不多(就像移动平台刚开始出来一样),相信1到3年内,各种杀
20181117--深入浅出区块链 智能合约开发环境搭建及Hello World合约
安装都完成了 geth --datadir “E:\blockchain\geth”testNet --dev console 启动textNet eth.accouts 查看以太坊的账户 eth.getBalance(eth.accounts[0]) 查看账户余额 personal.newAccount(“password”) 创建用户 给新账户转账 我们知道没有余额的账户是没法部署合约的,那我们就从默认账户转1以太币给新账户,使用以下命令(请使用你自己eth.accounts对应输出的账户
20181117——一步步教你开发、部署第一个去中心化应用(Dapp) - 宠物商店
DApp是Decentralized Application 分布式应用 npm Node Package Manager. 包管理工具 用来下载安装升级卸载安装包 完了没发出来,结果缓存都没了。 用MetaMask测试私有网络 从Ganache创建的账户中选择一个导入到MetaMask中 a. 在Ganache账户页面选定一个账户,点击最右边的小钥匙图标,复制其私钥(private key) b. 在MetaMask中点击头像,选择 “import account”,弹出对话框 c. 把复制
20181118————创建自己的数字货币
ERC20 Token 也许你经常看到ERC20和代币一同出现, ERC20是以太坊定义的一个代币标准。 要求我们在实现代币的时候必须要遵守的协议,如指定代币名称、总量、实现代币交易函数等,只有支持了协议才能被以太坊钱包支持。 接口如下 contract ERC20Interface {
string public constant name = "Token Name";
string public constant symbol = "SYM";
uint8 pu
20181118——Web3与智能合约交互实战
写在前面 在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互。这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dapp。因此,我们需要一种友好的方式(比如一个web页面)来与智能合约交互,于是问题的答案就是web3.js。 Web3.js Web3.js是以太坊官方的Javascript API,可以帮助智能合约开发者使用HTTP或者IPC与本地的或者远程的以太坊节点交互。实际上就是一个库的集合,主要包括下面几
20181118——理解开发钱包
数字钱包概念 钱包用来存钱的,在区块链中,我们的数字资产都会对应到一个账户地址上, 只有拥有账户的钥匙(私钥)才可以对资产进行消费(用私钥对消费交易签名)。 私钥和地址的关系如下: 私钥通过椭圆曲线生成公钥, 公钥通过哈希函数生成地址,这两个过程都是单向的。 因此实际上,数字钱包实际是一个管理私钥(生成、存储、签名)的工具,注意钱包并不保存资产,资产是在链上的。 去中心化网页钱包
nodejs实现网站数据的爬取
1 // 引入https模块,由于我们爬取的网站采用的是https协议
2 const https = require('https');
3 // 引入cheerio模块,使用这个模块可以将爬取的网页源代码进行装载,然后使用类似jquery的语法去操作这些元素
4 // 在cheerio不是内置模块,需要使用包管理器下载安装
5 const cheerio = require('cheerio');
6 // 这里以爬取拉钩网为例
7 var url = "https://www
shopxx----权限添加
shiro权限控制 一、角色管理请求地址 1、模板地址 /shopxx/WebContent/WEB-INF/template/admin/role/list.ftl shiro 权限拦截 配置安全管理器 在Shiro中,最终是通过Realm来获取应用程序中的用户、角色及权限信息的。通常情况下,在Realm中会直接从我们的数据源中获取Shiro需要的验证信息。可以说,Realm是专用于安全框架的DAO. 一、认证实现 该方法主要执行以下操作: 1、检查提交的令牌信息 2、根据令牌信息从数据源(
C++中指针和指针变量
指针和指针变量的理解: #include<iostream>
using namespace std;
int main()
{
int n;
int * m;
m = &n;
n = 10;
cout << "n=:" << n << endl;
*(int*)m = 110;
cout << "*m:" << *m << endl;
cout << "n:" << n << endl;
cout << "&n:
DjangoORM使用MySQL应注意
django 默认使用sqlite3 数据库 数据都写入到这个数据库 我们可以不使用默认的sqlite 换成mysql 代码不用动,只要改django的setting.py 配置就可以 如图 下面配置默认是sqlite mysql 数据库配置 注意: 'NAME' :数据库名 django不会帮你创建,要自己去mysql 上面创建数据库先 例如:设置 'NAME': db10 DATABASES = {
'default': {
'ENGINE': 'django.db.bac
11.20日个人工作总结
今天是倒数第二天,我的工作是将前天遗留下来的登录窗体无法运行的问题解决了,一下是部分代码以及完整的“改图乐乐的登录界面”。给自己制定的计划是把添加图片的窗体以及相关的picture控件,文字输入的textbox控件以及文字需要的格式颜色设计好再写下代码。
今日推荐
周排行