自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

六天的博客

区块链技术进阶之路

  • 博客(15)
  • 收藏
  • 关注

原创 六天以太坊去中心化租房平台,前端+合约源码

六天区块链房屋租赁系统,采用Vue+以太坊的开发框架,实现去中心化的房屋的租赁平台。房东可在平台上托管房屋,租客可在平台上预订房东的房屋并支付ETH为房租。在争议期内,房东或租客都可提出争议,由平台处理。争议期后,房东可提取房租ETH到自己的账户地址下。

2024-04-26 15:07:04 1022

原创 IPFS搭建私有网络与使用

在联盟链的场景下,IPFS作为去中心化存储的首选方案,本文将介绍如何使用go-ipfs搭建一个私有网络并进行简单使用。一、我的环境由于资源限制,我这里使用docker来搭建一个两个节点的IPFS私有网络。如果有条件可以直接在多台机器或者多个虚拟机上安装。二、开始搭建1、生成swarm.keyswarm.key是一个共享密钥,只有拥有相同密钥的节点才能互相通信,组成一个私钥网络。swarm.key可以使用https://github.com/Kubuxu/go-ipfs-swarm-key-gen

2020-11-09 18:22:21 922 1

原创 以太坊使用最小Gas克隆合约-合约工厂

在以太坊中,大部分的业务场景对智能合约的要求都是部署一次,但也有些场景,需要根据不同情况动态部署合约,比如在交易所中,为每个用户部署一个充提合约。对于第二种情况,往往需要方便并且低成本去生成和部署合约。类似编程中常见的工厂模式,不需要关系的对象的具体创建逻辑,只需要根据暴露的接口就可以创建出想要的对象。solidity也有类似的工厂,分为普通工厂和克隆工厂。一、普通工厂普通工厂,就是在工厂合约中以new的方式创建一个新合约。我这里以MetaCoin合约示例,合约代码如下所示。pragma soli

2020-09-11 17:15:56 942

原创 Kafka入门总结

最近在工作中遇到一个这样的需求,为区块链网络写一个中间件,以发布-消费模型对上链流量进行整型,解决区块链TPS低的问题。当上层高并发的流量过来后,流量统一进入中间件层,中间件对消息整合后才发送到区块链上。针对这个需求,经调研后决定选用Kafka,再次记录下学习过程。一、Kafka简介1.1 是什么Apache Kafka 是一款开源的消息引擎系统。所谓的消息引擎系统,根据维基百科的定义:消息引擎系统是一组规范,企业利用这组规范在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递。通俗的讲就是

2020-09-08 15:30:35 219

原创 以太坊合约静态分析工具Slither简介与使用

上篇学习了Mythril,一种动态的以太坊智能合约安全分析工具。今天来看看以太坊官方推荐的另一款静态智能合约分析工具Slither。本篇文章不做工具的对比与评测,仅从原理和使用角度阐述。一、概述Slither是一个用Python 3编写的智能合约静态分析框架,提供如下功能:自动化漏洞检测。提供超30多项的漏洞检查模型,模型列表详见:https://github.com/crytic/slither#detectors。自动优化检测。Slither可以检测编译器遗漏的代码优化项并给出优化建议

2020-07-23 21:20:56 2684 1

原创 以太坊安全分析工具Mythril简介与使用

一、Mythril是什么Mythril是一个以太坊官方推荐的智能合约安全分析工具,使用符合执行来检测智能合约中的各种安全漏洞,在Remix、Truffle等IDE里都有集成。其包含的安全分析模型如下。SWC是弱安全智能合约分类及对应案例,https://swcregistry.io/名称简介SWCDelegate Call To Untrusted Contract使用delegatecall请求不可信的合约SWC-112Dependence on Predict

2020-07-20 19:34:07 3163 6

原创 以太坊交易签名过程源码解析

向以太坊网络发起一笔交易时,需要使用私钥对交易进行签名,那么从原始的请求数据到最终的签名后的数据,这中间的数据流转是怎样的,经过了什么过程,今天从go-ethereum源码入手,解析下数据的转换。一、准备工作我以一个简单合约为例,调用合约的setA方法,参数为123。合约代码如下。pragma solidity >=0.4.22 <0.6.0;contract Test { uint256 internal a; event SetA(address indexed _f

2020-07-07 21:38:23 3036 1

原创 认识下以太坊Clef—独立交易签名器

一、初识以太坊go-ethereum在1.8.4版本中就开始引入了Clef,并在1.9.0版本中进行了较大的升级,其主要目的是以一种更安全、独立的方式替代以太坊节点的账号管理模块。1、Clef是什么官方文档对Clef的描述是:Clef最终目标是代替Geth的节点账号管理,可用来对交易进行签名。Clef可以使DApp不必依赖Geth的帐户管理,当DApp需要对数据(或交易)进行签名时,可以将数据发送给Clef,在经过授权同意后,Clef将把签名返回给DApp。从官网的描述中,并没有看出Clef的

2020-06-24 14:12:01 1922

原创 撸一个预言机(Oracle)服务,真香!—下篇

一、文章结构本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下:上篇:Oracle简介及合约实现中篇:使用go语言开发Oracle服务下篇:抽奖合约调用Oracle服务示例前两篇文章中,我们实现了Oracle合约,开发了Oracle服务,在这边文章中,我们以一个抽奖合约为例,介绍在抽奖合约中,怎么通过Oracle服务获取一个随机数(中奖数)。二、联调准备首先我们需要搭建测试环境、部署合约、运

2020-06-19 15:55:49 818 1

原创 撸一个预言机(Oracle)服务,真香!—中篇

一、文章结构本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下:上篇:Oracle简介及合约实现中篇:使用go语言开发Oracle服务下篇:抽奖合约调用Oracle服务示例在上篇中,我们实现了一个通用的Oracle合约,其主要有一个接收用户请求的Query方法;回调用户合约的Response方法和一个供Oracle后端服务订阅的QueryInfo事件。本篇是中篇,主要使用go语言开发实现Ora

2020-06-18 18:39:51 883

原创 撸一个预言机(Oracle)服务,真香!—上篇

一、文章结构本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下:上篇:Oracle简介及合约实现中篇:使用go语言开发Oracle服务下篇:抽奖合约调用Oracle服务示例一、Oracle简介Oracle(预言机)是链接链上与链下的桥梁,能够将链下数据推送给链上。正是由于Oracle的存在,使得区块链从封闭走向开放,充满无限可能。如需了解Oracle基础知识,这里推荐阅读孙孝虎的《什么是区块

2020-06-17 18:08:09 794

原创 以太坊中GraphQL简介及使用

以太坊在去年升级的go-ethereum(geth)1.9.0大版本,除了性能得到大幅提升之外,引入了GraphQL,一种节点接口查询机制,用以补充JSON-RPC。本文将会介绍GraphQL是什么,Geth为什么要引入GraphQL以及如何使用GraphQL三个方面对以太坊的GraphQL做一个介绍。本文作者:六天一、GraphQL是什么GraphQL官网对GraphQL的介绍是:GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据

2020-06-14 11:00:23 1186 1

翻译 以太坊智实现智能合约升级的三种代理模式

本文翻译自Zeppelin于2018年发表的关于《代理模式》文章。所有权归原文作者所有。原文链接:https://blog.openzeppelin.com/proxy-patterns/翻译:六天以太坊的最大优势之一是其公共账本内交易记录的不可篡改性,这些交易包括Token的转移,合约的部署以及合约交易。以太坊网络上的任何节点都可以验证每笔交易的有效性和状态,从而使以太坊成为一个非常强大的去中心化系统。但最大的缺点是,智能合约一旦部署后,则无法更改合约源码。中心化应用程序(例如Facebook.

2020-06-14 10:55:38 2788 1

原创 在以太坊生成随机数的几种方式(含代码)

一、什么是随机数随机数都是由随机数生成器(Random Number Generator)生成的。随机数分为”真随机数“和”伪随机数“两种。1、 真随机数真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。 ----百度百科根据百科上的定义可以看到,真随机数是依赖于物理随机数生成器的。使用较多的就是电子元件中的噪音等较为高级、复杂的物理过程来生成。2、伪随机数真正意义上的随机数(

2020-06-14 10:53:14 1969

原创 以太坊一种可升级的可信存证智能合约设计与实现

存证作为区块链的一个重要应用场景,在各个公链中都有已落地的应用和服务。本文将介绍在以太坊上的一种可升级的存证合约的设计与实现。一、存证业务模型存证业务的核心是确权,业务逻辑相对比较简单,一般分为存证方和取证方。存证方负责将需要确权的数据进行上链;取证方在需要时可以在区块链上查询到存证内容和该内容的所有者。如果存证的内容本身能够自证真实性(如电子合同,已有相关参与方的签名),这种业务模型是可以满足需求的。但是大多数存证场景的存证内容并不能够自证真实,比如你正在阅读的文章,并不能证明作者就是六天

2020-06-10 10:23:52 1701

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除