区块链
宫城诗
这个作者很懒,什么都没留下…
展开
-
20181120 npm
npm介绍包管理器(Package Manager)npm 最初它只是被称为 Node Package Manager,用来作为Node.js的包管理器。但是随着其它构建工具(webpack、browserify)的发展,npm已经变成了 “the package manager for JavaScript”,它用来安装、管理和分享JavaScript包,同时会自动处理多个包之间的依赖。本...原创 2018-11-20 10:00:11 · 143 阅读 · 0 评论 -
20181119 web3.js
web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等,其中最重要的就是与智能合约交互的API。JSON格式用于进行轻量级数据的交互,它可描述数字,字符串,有序的数以及键值对集合。JSON-RPC是一...原创 2018-11-19 22:11:14 · 141 阅读 · 0 评论 -
20181118 solidity语言深入编程
类型Solidity是一种静态类型语言,意味着每个变量(本地或状态变量)需要在编译时指定变量的类型(或至少可以推倒出类型)。Solidity提供了一些基本类型可以用来组合成复杂类型。Solidity类型分为两类:值类型(Value Type) - 变量在赋值或传参时,总是进行值拷贝。引用类型(Reference Types)值类型包含:布尔类型(Booleans)整型(Integer...原创 2018-11-18 22:40:06 · 207 阅读 · 0 评论 -
20181118 理解开发钱包
数字钱包概念钱包用来存钱的,在区块链中,我们的数字资产都会对应到一个账户地址上, 只有拥有账户的钥匙(私钥)才可以对资产进行消费(用私钥对消费交易签名)。私钥和地址的关系如下:私钥通过椭圆曲线生成公钥, 公钥通过哈希函数生成地址,这两个过程都是单向的。因此实际上,数字钱包实际是一个管理私钥(生成、存储、签名)的工具,注意钱包并不保存资产,资产是在链上的。去中心化网页钱包...原创 2018-11-18 21:38:49 · 449 阅读 · 0 评论 -
20181118 Web3与智能合约交互实战
写在前面在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互。这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dapp。因此,我们需要一种友好的方式(比如一个web页面)来与智能合约交互,于是问题的答案就是web3.js。Web3.jsWeb3.js是以太坊官方的Javascript API,可以帮助智能合约开...原创 2018-11-18 20:28:39 · 276 阅读 · 0 评论 -
20181117 一步步教你开发、部署第一个去中心化应用(Dapp) - 宠物商店
DApp是Decentralized Application 分布式应用npm Node Package Manager. 包管理工具 用来下载安装升级卸载安装包原创 2018-11-17 22:37:25 · 440 阅读 · 0 评论 -
20181117 区块链2.0以太坊开发
以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。智能合约智能合约可以理解为在区块链上可以自动执行的(由消息驱动的)、以代码形式编写的合同(特殊的交易)。智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等...原创 2018-11-17 21:38:45 · 391 阅读 · 0 评论 -
20181117 RSA算法数学原理分析
非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。RSA算法原理RSA算法的基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。如:有很大质数p跟q,很容易算出N,使得 N = p * q,但给出N, 比较难找p q(没有很好的方式, 只有不停的尝试)这其实也...原创 2018-11-17 21:26:51 · 332 阅读 · 0 评论 -
20181117 深入浅出区块链工作量证明
记账工作大家争相记账,大家一起记账就会引起问题:出现记账不一致的问题,比特币系统引入工作量证明来解决这个问题,规则如下:一段时间内(10分钟左右,具体时间会与密码学难题难度相互影响)只有一人可以记账成功通过解决密码学难题(即工作量证明)竞争获得唯一记账权其他节点复制记账结果不过在进行工作量证明之前,记账节点会做进行如下准备工作:收集广播中还没有被记录账本的原始交易信息检查每个交易信息...原创 2018-11-17 17:50:46 · 273 阅读 · 0 评论 -
20181117 深入浅出区块链非对称加密
银行系统我们先来回顾下现实的银行系统:首先我们需要把我们的个人信息(如身份证)给银行,银行给我们开立相对应的账户,银行在开户的时候确立了对账户的所有权。进行支付的时候,银行对交易双方完成转账(银行在开户的时候已经知道我们对应的账户)匿名账本那么比特币如何在没有第三方银行的参与下,在确保隐私的同时如何确定账户所有权的呢?实际上比特币的账户是用地址来表示,账本上不显示个人信息,转账是把比特...原创 2018-11-17 17:45:28 · 637 阅读 · 0 评论 -
20181116 区块链记账原理
区块链1.0是比特币,2.0是与智能合约结合的以太坊那么一定要讲一讲哈希函数哈希函数哈希函数:Hash(原始信息) = 摘要信息原始信息可以是任意的信息, hash之后会得到一个简短的摘要信息哈希函数的特点同样的原始信息用同一个哈希函数总能得到相同的摘要信息原始信息任何微小的变化都会哈希出面目全非的摘要信息从摘要信息无法逆向推算出原始信息举例说明:Hash(张三借给李四100万...原创 2018-11-16 21:46:29 · 175 阅读 · 0 评论 -
20181116 solidity语言复习
solidity的语言是为了能在以太坊上面部署智能合约Solidity是一种语法类似JavaScript的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。在后续内容中你将会发现,使用它很容易创建用于投票、众筹、封闭拍卖、多重签名钱包等等的合约。智能合约contract Coin//声明一个合约叫Coin {//关键字“public”使变量能从合约外部访问。 address...原创 2018-11-16 21:10:49 · 359 阅读 · 0 评论 -
20181115 区块链以太坊的部署
不知道干了什么,所有的东西一瞬间都没了。那就继续写吧关于插槽的使用重回区块链,好像又回到了那个夏天。还是老一套 geth以太坊节点的部署及基本命令操作以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。geth是以太坊的客...原创 2018-11-15 22:37:16 · 144 阅读 · 0 评论 -
20180729 Web3.js
已经简单的学习了node.js的基础技术,掌握了一些其应用,下面来探究一下web3.js。安装web3.js ,ganache-cli,solc使用以太坊提供web3.js工具包,来完成合约的编译,发布,合约方法调用的一整个流程,一方面来了解以太坊开发需要什么,另一方面来面对web3.js的API也有一个基本的认识。由于所有其他的工具都或多或少对web.js的底层函数的包装,所以对web3...原创 2018-07-29 19:52:46 · 1207 阅读 · 0 评论 -
20180719 区块链相关技术学习——Solidity编程实例文档阅读
Voting投票 接下来的合约非常复杂,但展示了很多Solidity的特性。它实现了一个投票合约。当然,电子选举的主要问题是如何赋予投票权给准确的人,并防止操纵。我们不能解决所有的问题,但至少我们会展示如何委托投票可以同时做到投票统计是自动和完全透明。思路是为每张选票创建一个合约,每个投票选项提供一个短名称。合约创建者作为会长将会给每个投票参与人各自的地址投票权。地址后面的人们可以选择自...原创 2018-07-18 17:29:21 · 329 阅读 · 0 评论 -
20180718 区块链相关技术学习——solidity官方文档学习Coin
contract SimpleStorage { uint storedData; //定义了一个uint类型的变量storedDatafunction set(uint x) { storedData = x;}//设置storedData的值function get() constant returns (uint retVal) { return ...原创 2018-07-18 16:29:23 · 318 阅读 · 0 评论 -
20180718 区块链学习——以太坊白皮书阅读
从技术角度讲,比特币账本可以被认为是一个状态转换系统,该系统包括所有现存的比特币所有权状态和“状态转换函数”。状态转换函数以当前状态和交易为输入,输出新的状态。例如,在标准的银行系统中,状态就是一个资产负债表,一个从A账户向B账户转账X美元的请求是一笔交易,状态转换函数将从A账户中减去X美元,向B账户增加X美元。如果A账户的余额小于X美元,状态转换函数就会返回错误提示。 比特币系统的“状态”...原创 2018-07-18 15:59:22 · 294 阅读 · 1 评论 -
20180718 区块链学习——图
有关于区块链学习的图原创 2018-07-18 10:20:30 · 254 阅读 · 0 评论 -
20180718 区块链学习——智能赞助代码
pragma solidity 0.4.24; contract smartSponsor{ address public owner;//合约的实施方 address public benefactor;//受益人 bool public refunded; bool public complete; uint public numPledge...原创 2018-07-18 09:42:59 · 204 阅读 · 0 评论 -
20180717 区块链相关技术——solidity语法
Int&与uint类型 int代表有符号的整数,也就是说可以带负数。 uint代表没有符号的整数,也就是说是从0开始的正整数 uint8 代表2的8次方 uint256代表2的256次方 uint默认为uint256int8代表-2的7次方到2的7次方int默认为256pragma solidity ^0.4.4;con...原创 2018-07-17 11:17:03 · 435 阅读 · 0 评论 -
20180716 区块链 关于资产上链
采取一问一答的形式1.什么叫“尽调” 答:尽职调查从某个角度来说就是尽职管理,对买方和他们的融资者来说,并购本身存在着各种各样的风险。 诸如,目标公司对过去财务账册的准确性,并购以后目标公司的主要员工、供应商和顾客是否会继续留下来;是否存在任何可能导致目标公司运营或财务运作分崩离析的任何义务。2.什么叫基金会 答:基金会(慈善基金会,foundation),是指利用自然人、法人或...原创 2018-07-16 14:55:35 · 1046 阅读 · 0 评论 -
20180716 区块链技术——摸爬滚打搭建私链
搭建自己的私链step1:建立目录和genesis.jsonstep2:使用命令行,创造创世块geth --datadri "./" init genesis.jsongeth中保存的是区块链的相关数据,keystore保存的是该条链中的用户信息step3:创建自己的私链并打开控制台 geth --datadir "./” --nodiscov...原创 2018-07-16 10:57:12 · 286 阅读 · 0 评论 -
20180716 区块链相关学习—solidity语言
以最简单的智能合约来说明pragma solidity 0.4.9; contract DemoTypes { function f(uint a) returns (uint b) { uint result = a * 8; return result; }}第一行代码来告诉编译...原创 2018-07-16 10:01:02 · 401 阅读 · 0 评论 -
20180711 区块链相关技术学习——入门geth
区块链主要是由几个大的技术进行应用的模式,包括分布式数据存储、点对点传输(P2P)、共识机制、加密算法等。 开源的软件建构其上的P2P网络,其支持这一个应用的底层技术叫做区块链,本质上是一个去中心化的数据库,区块链是利用密码学方法产生的数据块,每一个数据块包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)与生成下一个区块。 区块链特征:去中心化、开放性、自治性、信息...原创 2018-07-11 21:05:15 · 400 阅读 · 0 评论 -
20180711 区块链技术开发相关资料学习
作为分布式记账平台的核心技术,区块链拥有广泛的应用前景。无论是资金的流转,还是资产的交易,实际上都是通过银行、交易机构中的账本记录来实现的。区块链技术是(继蒸汽机、电气化、计算机之后)的第四次工业革命的核心成果。关于工作量证明 关于工作量证明区块链最基本的原理: 交易、区块、链为了提高交易性能,试图将大量的高频交易放到链外来,只有区块链记录最终交易信息。2016年6月17日,dao系统漏洞被...原创 2018-07-11 14:38:43 · 177 阅读 · 0 评论 -
20180705 区块链学习2——技术与详细工作过程
一、非对称加密 就是解密与加密需要两把钥匙:一把公钥一把私钥。 如同学习1所说:公钥是公开的谁都可以获取,而私钥是保密的只能自己拥有。他人使用你的公钥进行加密发送给你,你再用私钥进行解密,取出信息。同样,你可以用你的私钥加密信息,别人用你的公钥解开,从而证明这个信息是你发出的,且未被祖篡改,这叫数字签名。 关于数字签名(详细介绍) 根据协议公钥的长度为512位,公钥又形成了...原创 2018-07-05 23:14:28 · 534 阅读 · 0 评论