文档章节

NNS拍卖合约

红烧飞鱼
 红烧飞鱼
发布于 2018/07/23 01:35
字数 1648
阅读 27
收藏 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的域名也会越来越有价值。

© 著作权归作者所有

共有 人打赏支持
红烧飞鱼
粉丝 2
博文 4
码字总数 5340
作品 0
私信 提问
NEO区块链公开课(5):NNS系统设计与实现

NEO区块链公开课是NGD(NEO Global Development )、NEL(NewEconoLab)、InnoSpace创新院共同发起的区块链技术学习专场活动。旨在满足广大开发者对NEO区块链技术的入门、进阶以及技能提升需求...

NEO爱好者
2018/10/11
0
0
Solidity文档(中文版)连载三:结合实例学习 Solidity

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

风静縠纹平
2018/05/14
0
0
NEL程序员专用轻钱包 进入0.01状态了

这个轻钱包能干什么,现在就能在测试网看个余额,转个帐,调用个合约。 而且功能非常程序员化 你会说是不是没啥用 但是他有非常有用,因为他可以很容易的拼出NEOGUI拼不出来的交易 比如参与I...

NEO-FANS
2018/12/29
0
0
DAPP 开发直通车-如何基于NEL 轻钱包来开发DAPP

之前做了 DAPP 开发直通车,通讲了一下开发一个DAPP的过程。 但是涉及多工种,多步骤。入手还是非常困难的。 经过不懈的努力,做了很多铺垫工作之后,我终于可以告诉你: 开发DAPP for NEO,...

NEO-FANS
01/05
0
0
区块链培训区块链培训区块链培训,重要的事情说三遍

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

以太坊智能合约开发
2018/05/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部