文档章节

NNS拍卖合约

红烧飞鱼
 红烧飞鱼
发布于 07/23 01:35
字数 1648
阅读 11
收藏 0

前言

        关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html

        首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳https://my.oschina.net/u/2276921/blog/1843182

       这里只是简单的把拍卖的流程梳理一下,不会附上代码,有兴趣看代码的可以戳https://github.com/NewEconoLab/neo-ns/blob/master/dapp_nns_register_sell/nns_register_sell.cs

        首先明确一下合约开发过程中的几个限制。

        限制一:合约只能被动的触发,它没有定时器,没办法定时主动做一些事情。

        限制二:一笔交易只有10gas的免费调用额度,所以在做一些复杂流程的时候只能妥协拆成两步或者采取一些预处理的方式来做。

正文

一   域名的开拍

        大家印象中的拍卖肯定都是拍卖师把藏品拿到台前,大家开始疯狂出价,结束后把拍卖的钱给藏品的主人。拍卖合约是不一样的,因为拍卖合约内的所有域名都不属于谁,所有人只有使用权。任何人都可以把一个不在使用期的域名拿到台前来拍卖,拍卖得到的钱会全部进入奖池,在某个时机再全部空投出去。

二   拍卖合约的账户

        拍卖合约设定的出价方式是每次出价的时候都要把钱上交才能出价,并没有采用先喊价后结算等方式。主要这种方式没有信用等因素的干扰,简单粗暴。这种出价方式对于出价者来说其实是两步操作,先给钱再喊价。从合约调用层面来讲就是需要先调用sgas合约的转账,然后调用拍卖合约的出价。一个交易中如果包含了这两步调用合约的操作,极易超出10gas的免费额度,但如果分成两个交易发送又需要两个高度的确认,用户体验非常差。所以拍卖合约自身建立了一个账户系统,用以缓冲。可以类比为超市的充值卡,用户先充值一笔钱到充值卡上,以后每次在超市消费都用充值卡结算,超市活动返点什么也可以直接返回到你的充值卡,不需要你过来领取。

三    合约内的时间跨度计算

        合约自开拍后一定有三天的自由竞价期,可能有两天的随机期结束期。拍得域名后有一年的使用期(从域名开拍的时间开始计算),使用期前有三个月的续约期。

        合约内的时间跨度都是用时间戳来计算,例如开拍某个域名的高度是1000000,对应的时间戳是1515777377。那么这个域名的自由期就是时间戳小于1515777377+3*24*3600的块。使用期的就是小于1515777377+365*24*3600的块。

四    拍卖的自由期

        从域名开拍的块对应时间戳作为起始时间,三天之内为自由期。在自由期用户可以自由竞价。

        需要注意的是,如果域名开拍之后自由期内并没有任何人有过出价,那么域名就被标记为流拍,可以继续被申请拍卖。

        自由期内的第三天存在有效出价的话,就会进入随机期。否则直接跳过随机期,进入清算阶段。

五    拍卖的随机期

        进入随机期后,最长会持续两天,竞拍者在这个时段出价,会有随机的概率结束这场域名的拍卖。这个概率会随着时间越来越高,可以近似的认为随机期过了10%那么就有10%的概率触发结束。时间点越往后,结束的概率越大。需要注意的是,如果这次的出价触发了结束,那么这次的出价并不会生效。

        之所以设定一个随机期的时段,是因为只有自由期的话,没人会愿意在一开始的时候就为域名出价,只要在快结束的时候出价就可以达到效果,这样的话会导致拍卖流程毫无意义,整个的拍卖流程甚至只要一个块就可以完成。因此我们加入了随机期这一时段,用不确定的结束时间点来避免用户在接近结束的时候扎推出价,让用户尽早的出到自己心目中的价格。

六    域名的使用期和续约期

        域名如果被成功拍卖,那么拍卖的获胜者就享有一年的使用权。时间是从域名申请开拍的时间开始,365天后为到期时间。

        到期前三个月内为续约期,域名的使用者可以申请续约延长一年的使用时间,延长后的到期时间为原到期时间加365天。目前续约不收取任何费用。

        域名到期之后,原使用者可以继续使用。但其余人此时可以申请开拍这个域名,如果拍卖成功,原使用者会丧失使用权。

七    拍卖清算

        当一个域名被成功拍卖之后,所有参与拍卖的用户都需要清算一下这次拍卖的资金。成功拍到域名的人把拍卖的总金额都转到奖池里,失败的人则上交10%的费用当作手续费并退回90%到拍卖合约的账户中。另外成功拍到域名的人还需要自己领取域名。有这样的流程是因为合约不能主动做事情,所以需要用户自己处理自己的资金问题。

 

结束语

        拍卖是NNS项目中非常重要的域名获得方式。相比先到先得,直接分配等方式,竞拍可以更有效的让真正想获得使用的人拿到域名。

        域名的使用能够提升区块链的易用性。未来,随着NEO生态的应用越来越多,NNS的域名也会越来越有价值。

© 著作权归作者所有

共有 人打赏支持
红烧飞鱼
粉丝 1
博文 3
码字总数 4878
作品 0
Solidity文档(中文版)连载三:结合实例学习 Solidity

序言 本文是 Solidity 文档(以太坊官方 Solidity 开发手册)中文版连载的第三部分。这个连载的前两部分是 智能合约概述 和 安装 Solidity 编译器。 这份文档的英文原文可以在以太坊官网的最...

风静縠纹平
05/14
0
0
区块链培训区块链培训区块链培训,重要的事情说三遍

区块链这段时间非常火,可以学习区块链专业开发技术的培训却不多。多数是区块链的基础资料配合其他行业知识做高端培训如某大学培训之类,给高端人士扫盲。真正的能指导开发的IT技术类培训的可...

以太坊智能合约开发
05/03
0
0
以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台

第一节 简介 欢迎和我们一起来用以太坊实战开发构建一个去中心化电商DApp!我们将会构建一个类似淘宝的在线电子商务应用,我将使用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商...

马拉喀什
03/29
0
0
solidity智能合约的经典设计模式

设计模式是许多开发场景中的首选解决方案,本文将介绍五种经典的智能合约设计模式并给出以太坊solidity实现代码:自毁合约、工厂合约、名称注册表、映射表迭代器和提款模式。 如果你希望马上...

汇智网教程
05/03
0
0
密码学和隐私保护智能合约的区块链模型

抽象:   与分散加密货币相比,新兴的智能合约系统允许相互不信任的各方在没有可信任的第三方的情况下安全地进行交易。在发生合同违约或中止时,分散式区块链确保诚实的各方获得相应的赔偿...

技术小能手
06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
今天
0
0
qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部