
区块链
文章平均质量分 82
秋天的春
编程哪里是什么艺术!只不过是把简单的思维方式赋予给了计算机。
展开
-
Solidity语言编辑器REMIX指导大全
1. 文章摘要 【本文目标】本文翻译和实践Solidity语言编辑器REMIX官网帮助文档,但并不拘泥于逐字翻译,而时根据实践用中文语言讲透编辑器相关功能。【前置条件】了解以太坊ETH和Solidity语言。【技术收获】1). 使用REMIX编辑器进行Solidity语言编程,编译,运行,调试。2). REMIX界面介绍2. 使用REMIX编辑器执行"HELLO WORLD"的...原创 2018-07-25 10:48:08 · 1143 阅读 · 0 评论 -
如何在Remix环境下进行Solidity代码单步调试
1. 文章摘要【本文目标】本文目标是指导如何使用REMIX完成一次智能合约交易调试。【前置条件】学习过Solidity语言,需要进行调试。【技术收获】1). 使用REMIX进行单步调试2). REMIX的Debugger界面介绍 2. 开始调试REMIX有2种方式启动调试。新建一个智能合约文件”Donation.sol”,复制以下代码:contract Donati...原创 2018-07-25 10:46:10 · 596 阅读 · 0 评论 -
80%开发者都不知道的以太坊骚操作:「事件」和「日志」还可以这么玩!
80%开发者都不知道的以太坊骚操作:「事件」和「日志」还可以这么玩! 4月6日,Daniel Larimer发布了一篇文章《EOSIO Dawn 3.0 Now Available》(译:EOSIO Dawn 3.0来啦),在章节「Simplified Contract Development」(译:更简单的合约开发)中,举了个「Hello,World」的智能合约的例子来说明合约开发的...原创 2018-07-25 10:43:56 · 246 阅读 · 1 评论 -
以太坊客户端Geth命令用法-参数详解
命令用法geth [选项] 命令 [命令选项] [参数…]版本:1.7.3-stable命令:account 管理账户attach 启动交互式JavaScript环境(连接到节点)bug 上报bug Issuesconsole 启动交互式JavaScript环境copydb 从文件夹创建本地链dump D...原创 2018-07-19 14:16:11 · 734 阅读 · 0 评论 -
解决Windows7安装Remix-ide不成功的问题
Windows7安装Remix-ide首先找到编译器git地址,https://github.com/ethereum/remix-ide;进来后有安装步骤 具体步骤如下:1.安装nodejs。需要用到npm;如果我们电脑上没有node.js先登录下面的网址安装https://docs.npmjs.com/getting-started/installing-node...原创 2018-07-19 09:57:10 · 2434 阅读 · 0 评论 -
智能合约最佳实践 之 Solidity 编码规范
每一门语言都有其相应的编码规范, Solidity 也一样, 下面官方推荐的规范及我的总结,供大家参考,希望可以帮助大家写出更好规范的智能合约。命名规范避免使用小写的l,大写的I,大写的O 应该避免在命名中单独出现,因为很容易产生混淆。合约、库、事件、枚举及结构体命名合约、库、事件及结构体命名应该使用单词首字母大写的方式,这个方式也称为:帕斯卡命名法或大驼峰式命名法,...原创 2018-07-19 09:43:20 · 223 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列10 - 完全理解函数修改器
函数修改器(Function Modifiers)函数修改器(Modifiers)可以用来改变一个函数的行为。比如用于在函数执行前检查某种前置条件。如果熟悉Python的同学,会发现函数修改器的作用和Python的装饰器很相似。修改器是一种可被继承合约属性,同时还可被继承的合约重写(override)。下面我们来看一段示例代码: pragma solidity ^0.4...原创 2018-07-19 09:34:44 · 243 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列9 - 错误处理
什么是错误处理错误处理是指在程序发生错误时的处理方式,Solidity处理错误和我们常见的语言不一样,Solidity是通过回退状态的方式来处理错误。发生异常时会撤消当前调用(及其所有子调用)所改变的状态,同时给调用者返回一个错误标识。注意捕捉异常是不可能的,因此没有try … catch…。为什么Solidity处理错误要这样设计呢?我们可以把区块链理解为是全球共享的分布式事务性数据库...原创 2018-07-18 11:18:13 · 333 阅读 · 0 评论 -
Web3与智能合约交互实战
写在前面在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互。这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dapp。因此,我们需要一种友好的方式(比如一个web页面)来与智能合约交互,于是问题的答案就是web3.js。Web3.jsWeb3.js是以太坊官方的Javascript API,可以帮助智能...原创 2018-07-20 10:00:41 · 1227 阅读 · 0 评论 -
如何用Truffle, Oraclize, ethereum-bridge和Webpack创建Dapp
前提条件有些前端基础 你正好在学习Oraclize和Solidity的Events我们要做什么我们将会写一个使用本地运行的Oracle,来从外部API获取数据的智能合约,我们通过ethereum-bridge来模拟Oracle。合约从Coinbase的API获取ETH对美元的价格。同时我们会创建一个HTML页面来展示获取到的数据,并且实时更新它。使用到的工具git ...原创 2018-08-24 10:55:33 · 974 阅读 · 0 评论 -
使用web3进行合约部署调用以及监听
token合约是官方提供的一个样例,这里给出我修改过的版本,方便演示.contract MyToken { /* Public variables of the token */ string public name; string public symbol; uint8 public decimals; /* This creates an...原创 2018-08-08 10:00:40 · 5908 阅读 · 1 评论 -
手把手教你发行属于自己的区块链Token
手把手教你发行属于自己的区块链Token 预先准备以太坊钱包 一定数量的eth余额 MetaMaskToken的参数在发行之前首先要考虑Token的参数,譬如这篇教程准备发行如下TokenToken的名称:Dylan Token Token的标识:DT 发行量:19940512 Token的小数位:18编写合约想要基于以太坊拥有自己的Token,需要通过智能合...原创 2018-08-02 11:10:21 · 2245 阅读 · 1 评论 -
Etherscan 上传和验证合约源码
Etherscan 上传和验证合约源码 DeanDnnn 关注2018.05.31 11:50* 字数 463 阅读 562评论 7喜欢 1为什么要上传智能合约的代码呢?公开token的源码,增加透明度和投资人的信任度; 上传源码后,人们可以在Etherscan查看当前token的源码,同时也可以很方便的看到token的相关信息。上传代码后,通过源码验证和没有通过源码验证...原创 2018-08-02 11:04:24 · 4813 阅读 · 3 评论 -
Fomo3D 会是击垮ETH的“核武器”阴谋吗?
Fomo3D 会是击垮ETH的“核武器”阴谋吗? 如果有10%的利润,资本就保证到处被使用;有20%的利润,资本就会活跃起来;有50%的利润,资本就会铤而走险;有100%的利润,资本就敢践踏一切法律;有300%的利润,资本就敢犯任何罪行,甚至冒着被绞首的危险。---马克思 资本逐利,背后是人在逐利。科学研究表明,人之所以爱赌博,爱投机,是根植于基因中的本来有益进化的机制,...原创 2018-08-02 10:06:58 · 537 阅读 · 0 评论 -
【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别
一、前言 win10安装web3都是失败,痛苦之下,发现直接装web0.20版本,解决问题二、概念1、什么是web3.js呢?答: Web3.js是以太坊提供的一个JavaScript库,它封装了以太坊的RPC通信API,提供了一系列与区块链交互方法,使JavaScript与以太坊交互变得简单。 以太坊节点通过JSON-RPC提供外部访问接口,Web3...原创 2018-08-06 18:42:59 · 2187 阅读 · 0 评论 -
NodeJs实现定时任务的示例代码
NodeJs实现定时任务的示例代码在项目中有个每天0点执行的函数,本来想用setInterval来实现,但觉得这种需求以后应该还会有,自己写可能拓展性不高。搜了一下发现了node-schedule这个包。现在记录一下使用方法node-schedule没次都是通过新建一个scheduleJob对象来执行具体方法。时间数值按下表表示 1 2 3 4...原创 2018-08-10 15:26:01 · 4142 阅读 · 0 评论 -
【以太坊开发】BeautyChain (BEC) 溢出漏洞分析
前言2018年4月23日中午11点30分左右,BEC代币被Hacker攻击。Hacker利用数据溢出的漏洞攻击与美图合作的公司美链 BEC 的智能合约,成功地向两个地址转出了天量级别的 BEC 代币,导致市场上海量 BEC 被抛售,该数字货币价值几近归零,给 BEC 市场交易带来了毁灭性打击。下面我们来分析一下此次受攻击的漏洞,作为前车之鉴。一、Token地址:https:...原创 2018-07-20 18:49:57 · 1622 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列8 - Solidity API
Solidity APISolidity API 主要表现为Solidity 内置的特殊的变量及函数,他们存在于全局命名空间里,主要分为以下几类:有关区块和交易的属性 有关错误处理 有关数学及加密功能 地址相关 合约相关下面详细讲解下区块和交易的属性(Block And Transaction Properties)用来提供一些区块链当前的信息。block.block...原创 2018-07-18 11:03:38 · 291 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列7 - 以太单位及时间单位
货币单位(Ether Units)一个数字常量(字面量)后面跟随一个后缀wei, finney,szabo或ether,这个后缀就是货币单位。不同的单位可以转换。不含任何后缀的默认单位是wei。不同的以太币单位转换关系如下:1 ether == 10^3 finney == 1000 finney 1 ether == 10^6 szabo 1 ether == 10^18 wei...原创 2018-07-18 10:45:42 · 254 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列6 - 结构体与映射
结构体(Structs)Solidity提供struct来定义自定义类型,自定义的类型是引用类型。我们看看下面的例子: 1234567891011121314151617181920212223242526272829303132333435363738394041424344 ...原创 2018-07-18 10:44:10 · 298 阅读 · 0 评论 -
以太坊之秘钥文件
本文目录1.账号2.秘钥文件3.创建账户4.开发的时候都在测试网络下回到顶部1.账号 账号在以太坊中扮演着核心的角色.以太坊共有两种账号类型: 外部账号( EOA) 和合约账号. 在这里我们先重点关注外部账号,简称账号.合约账号简称合约,合约账户在合约章节中详细介绍.外部账户和合约账户都是账户的通用概念,这些账户其实都是状态对象.外部账户的余额就是外部账户的一个状态对象,合约账户的状态除了有余...原创 2018-07-10 15:51:03 · 1867 阅读 · 0 评论 -
Solidity语言编辑器REMIX指导大全
文章摘要本文目标:本文翻译和实践Solidity语言编辑器REMIX官网帮助文档,但并不拘泥于逐字翻译,而时根据实践用中文语言讲透编辑器相关功能。前置条件:了解以太坊ETH和Solidity语言。技术收获:使用REMIX编辑器进行Solidity语言编程,编译,运行,调试。REMIX界面介绍2 使用REMIX编辑器执行”HELLO WORLD”的智能合约REMIX是一个智能合约编程语言Solidi...原创 2018-07-10 15:22:47 · 2031 阅读 · 1 评论 -
以太坊 DApp 开发-Geth 私链环境搭建-Ubuntu 平台
以太坊 DApp 开发-Geth 私链环境搭建-Ubuntu 平台一、安装前的准备1.1 查看当前 CPU 架构在终端中执行以下命令,确定是 32 位架构还是 64 位架构:~$ uname –px86_64如果你看到输出 x86_64,那么就是 64 位系统,否则是 32 位。1.2 下载工具确保你安装了下载工具 wget:~$ wget –VGNU Wget 1.17.1 built o...原创 2018-07-03 11:46:32 · 1582 阅读 · 1 评论 -
Ethereum JSON-Api 的使用
Ethereum的API接口类型Ethereum官方提供了Go、python、C++和Parity四种语言的版本。四种语言都提供了JSON-RPC API,供使用者调用,可以通过geth RPC终端开启。在开启geth的时候可以增加 --${interface}api新选项来选择开启哪一个api。${interface}的类型可以为 rpc开启HTTP, ws开启Web Scocket, ipc开...原创 2018-07-09 15:17:52 · 1112 阅读 · 0 评论 -
Omni研究系列【USDT raw transaction】
Omnicore-cli命令一览Omni的资料相对比较少,把一些常用命令执行结果也列出来,便于快速的了解。omni_getallbalancesforid取指定omni代币Chaim:bin Chaim$ ./omnicore-cli "omni_getallbalancesforid" 1[{"address": "1DUJAPA5i7biVYyZNCnckqEBEjY1Act2ct","...原创 2018-06-19 14:10:36 · 13971 阅读 · 15 评论 -
Tether USDT 节点钱包的安装与使用-omni layer
什么是USDT 本文中,我们介绍Tether公司利用bitcoin区块网络构造的omni layer,在这个overlay network上各方可以发行token,tether公司在omni layer上发行了代号为USDT的token, 1:1锚定美元。tether的思想很简单,大家把美元给我,给我1美元,我发行1USDT,美元存放到指定的资产账户,大家都可以查询,发行的USDT总量也可以在区块...原创 2018-06-15 16:12:08 · 18539 阅读 · 4 评论 -
BTC开发-PHP相关
Simple Bitcoin JSON-RPC client based on GuzzleHttp InstallationRun php composer.phar require denpa/php-bitcoinrpc in your project directory or add following lines to composer.json"require": { "...原创 2018-06-15 15:58:34 · 1480 阅读 · 0 评论 -
BTC API命令 中文版
完整列表必需的参数在<和>中表示。可选参数在[和]内。命令参数描述需要解锁的钱包?(V0.4.0 +)addmultisigaddress<nrequired> <'[“key”,“key”]'> [account]向钱包添加一个需要签名的多重签名地址。每个密钥都是一个比特币地址或十六进制编码的公钥。如果指定了[帐户],请将地址分配给[帐户]。返回包含地址的字符...原创 2018-06-15 15:33:43 · 14766 阅读 · 0 评论 -
OmniLayer / omnicore API 中文版
JSON-RPC APIOmni Core是Bitcoin Core的一个分支,其Omni协议功能支持作为顶层的新功能层添加。因此,与API的交互以与Bitcoin Core相同的方式(JSON-RPC)完成,只需使用额外的RPC即可使用Omni协议功能。由于所有现有的比特币核心功能都是Omni Core固有的,因此默认情况下RPC端口保持8332与每个比特币核心一样。如果您希望与比特币核心一起运...原创 2018-06-15 15:28:16 · 5710 阅读 · 1 评论 -
BTC 安装和使用笔记
BTC的官方网站: http://bitcoin.org参考: https://bitcoin.org/en/developer-examples1.安装. 过程如下:sudo add-apt-repository ppa:bitcoin/bitcoinsudo apt-get updatesudo apt-get install bitcoindupdatesud...原创 2018-06-14 17:28:58 · 3874 阅读 · 1 评论 -
一步步教你开发、部署第一个去中心化应用(Dapp) - 宠物商店
今天我们来编写一个完整的去中心化(区块链)应用(Dapps), 本文可以和编写智能合约结合起来看。写在前面阅读本文前,你应该对以太坊、智能合约有所了解,如果你还不了解,建议你先看以太坊是什么除此之外,你最好还了解一些HTML及JavaScript知识。本文通过实例教大家来开发去中心化应用,应用效果如图:从本文,你可以学习到:搭建智能合约开发环境创建Truffle项目编写智能合约编译和部署智能合约到...原创 2018-07-10 18:25:10 · 473 阅读 · 0 评论 -
fomo3d 智能合约
fomo3d智能合约pragma solidity ^0.4.24;/** * @title -FoMo-3D v0.7.1 * ┌┬┐┌─┐┌─┐┌┬┐ ╦╦ ╦╔═╗╔╦╗ ┌─┐┬─┐┌─┐┌─┐┌─┐┌┐┌┌┬┐┌─┐ * │ ├┤ ├─┤│││ ║║ ║╚═╗ ║ ├─┘├┬┘├┤ └─┐├┤ │││ │ └─┐ * ┴ └─┘┴ ┴┴ ┴ ╚╝╚═╝...原创 2018-07-23 10:22:39 · 2125 阅读 · 2 评论 -
php与ethereum客户端交互
php与ethereum rpc server通信一、Json RPCJson RPC就是基于json的远程过程调用,这么解释比较抽象。简单来说,就是post一个json格式的数据调用rpc server中的方法. 而这个json格式是固定的, 总的来说有这么几项:{ "method": "", "params": [], "id": idNumber}method: 方...原创 2018-07-05 14:24:32 · 1511 阅读 · 0 评论 -
Geth 控制台使用及 Web3.js 使用实战
Geth 控制台使用及 Web3.js 使用实战在开发以太坊去中心化应用,免不了和以太坊进行交互,那就离不开Web3。Geth 控制台(REPL)实现了所有的web3 API及Admin API,使用好 Geth 就是必修课。结合Geth命令用法阅读效果更佳。写在前面阅读本文之前,你需要对以太坊(区块链)有初步的了解,如果你不知道以太坊是什么,请先阅读以太坊是什么。如果你在我的小专栏之外的地方阅读...原创 2018-07-05 17:08:35 · 960 阅读 · 1 评论 -
智能合约语言 Solidity 教程系列5 - 数组介绍
数组(Arrays)数组可以声明时指定长度,也可以是动态变长。对storage存储的数组来说,元素类型可以是任意的,类型可以是数组,映射类型,结构体等。但对于memory的数组来说。如果作为public函数的参数,它不能是映射类型的数组,只能是支持ABI的类型。一个元素类型为T,固定长度为k的数组,可以声明为T[k],而一个动态大小(变长)的数组则声明为T[]。还可以声明一个多维数组,如...原创 2018-07-18 10:35:37 · 211 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列4 - 数据存储位置分析
数据位置(Data location)在系列第一篇,我们提到 Solidity 类型分为两类:值类型(Value Type) 及 引用类型(Reference Types),前面我们已经介绍完了值类型,接下来会介绍引用类型。引用类型是一个复杂类型,占用的空间通常超过256位, 拷贝时开销很大,因此我们需要考虑将它们存储在什么位置,是memory(内存中,数据不是永久存在)还是storag...原创 2018-07-18 10:34:22 · 259 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列3 - 函数类型
函数类型(Function Types)函数也是一种类型,且属于值类型。可以将一个函数赋值给一个函数类型的变量。还可以将一个函数作为参数进行传递。也可以在函数调用中返回一个函数。函数类型有两类:内部(internal)和外部(external)函数内部(internal)函数只能在当前合约内被调用(在当前的代码块内,包括内部库函数,和继承的函数中)。外部(external)函数由地址和...原创 2018-07-18 10:30:08 · 285 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列2 - 地址类型介绍
地址类型(Address)地址类型address是一个值类型,地址: 20字节(一个以太坊地址的长度),地址类型也有成员,地址是所有合约的基础支持的运算符:<=, <, ==, !=, >= 和 > 注意:从0.5.0开始,合约不再继承自地址类型,但仍然可以显式转换为地址。 地址类型的成员 balance 属性及transfer() 函数...原创 2018-07-18 10:27:28 · 406 阅读 · 0 评论 -
智能合约语言 Solidity 教程系列1 - 类型介绍
类型Solidity是一种静态类型语言,意味着每个变量(本地或状态变量)需要在编译时指定变量的类型(或至少可以推倒出类型)。Solidity提供了一些基本类型可以用来组合成复杂类型。Solidity类型分为两类:值类型(Value Type) - 变量在赋值或传参时,总是进行值拷贝。 引用类型(Reference Types)值类型(Value Type)值类型包含:布尔类...原创 2018-07-18 10:26:01 · 296 阅读 · 0 评论 -
以太坊客户端Geth命令用法-参数详解
以太坊客户端Geth命令用法-参数详解Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具。熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册。 本文主要是对geth help的翻译,基于最新的geth 1.7.3-stable版本。如果你还不知道geth是什么,请先阅读入门篇:以太坊是什么。更多geth实战使用方法请参考Geth控制台使用实战...原创 2018-07-05 15:45:06 · 378 阅读 · 0 评论