Qtum量子链实现首个基于比特币UTXO模型的POS智能合约平台

Unknown view 45 2017-1-3 10:29
share to
Scan QR code with WeChat

Qtum量子链实现首个基于比特币UTXO模型的POS智能合约平台 (1)

记者:铅笔芯

12月20日,Qtum 量子链发布第二个社区项目“微夏”(Qloha: www.qloha.com),该项目致力于拓展区块链技术的应用边界,通过与现有主流社交平台和消息平台的融合(微信、iMessage、telegram等),推进区块链技术与现有社交网络的融合,来极大的拓展加密货币和区块链技术的使用场景和扩大区块链行业的用户基数,并且提高区块链技术的产品化的能力,使普通的互联网用户,可以使用加密货币和区块链技术。

Qtum量子链实现首个基于比特币UTXO模型的POS智能合约平台 (2)

Qtum 在一个月之前,发布了第一个社区项目“春邮”,谈起与第一个社区项目的关系,Qtum 发起人帅初提到:不论是春邮还是微夏,这两个项目都是希望能够通过一定的尝试,来提高区块链技术产品化的能力,并且提升区块链技术的易用性,从而真正帮助区块链技术的早日普及和使用。为什么第二个项目叫做: 微夏 (Qloha)帅初提到:这个项目最初的想法是想结合微信的小程序,来实现加密货币的管理和收发功能,并且引入社交的因素,从而增加数字货币的易用性和便捷性。并且Aloha是世界上最早的无线通信网络的协议,因此取义于此,希望基于Qtum的一些探索,可以促进区块链技术与社交网络的深度融合,促进区块链技术的早日落地。

目前微夏项目已经处于原型阶段,并且已经基本完成了基于微信小程序的开发工作,并且在准备与imessage的开发工作。

Qtum量子链实现首个基于比特币UTXO模型的POS智能合约平台 (3)

微信小程序将加大的促进轻应用的发展,并且促进互联网服务的个性化和轻量化,通过与微信小程序的融合,可以极大的增加Qtum的用户规模和易用性。

微夏作为首个区块链行业的小程序,其中的一些开发经验将帮助行业的从业者少走弯路,我们可以一起来回顾一下其中的开发历程。

(一)微信小程序

1.简介

下面这段摘自微信小程序官方页面。

小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。

小程序是一个以微信为入口,行为和原生APP几乎一致,开发一次就可以编译到各平台的开放能力,了解过React Native的就很容易理解,是类似的东西。小程序的开放对于创业团队无疑有重要的意义:

入口在微信端,体积小,下载和安装成本很低,推广更容易;

开发时无需针对安卓和iOS分别开发,大大节省开发成本;

相比基于微信公众号API的手机网页开发,体验上更强,功能更丰富,且效果十分接近于原生APP,远远优于手机网页;

不会像一般APP那样堆满用户的桌面,只需要一个微信;

小程序的页面可以直接分享到微信,利于传播;

直接可以使用微信这个现成的账户体系,省去注册登录等麻烦。

小程序的意义不止上述,它可以实现的功能也非常多。官方提供了丰富的组件,包括常用的表单、媒体、地图、canvas等,同时提供了网络、媒体、文件、数据缓存、位置、设备、界面交互等相关API,除此之外,还有许多微信特色的功能,如扫码、支付等等。可以将微信理解成一个系统,而不只是一个聊天社交工具,你想实现的功能,你要用到的接口,微信这个OS都帮你实现了。

2.微夏Qloha的开发

小程序用的语言其实是前端熟悉的js、css和xml,能胜任前端工作的开发人员也完全能胜任小程序开发,只需要进一步学习小程序的组件和API。它有其独有的开发者工具,集成了开发调试、代码编辑和程序发布。使用它来开发,可以很方便实时看到效果,进行追踪调试等,但是它的编辑器又不如自己常用的顺手。当然可以使用自己熟悉的编辑器来进行开发,小程序依然会自动检测文件保存,并实时刷新,但是带来的就是来回切换窗口也不方便。总之,各有利弊,在微夏Qloha的开发过程中,Qtum的开发人员 更倾向于使用自己熟悉的编辑器如Sublime Text等进行开发,切换窗口之间的时间损耗完全可以靠编辑器特性来弥补。当然一个给力的大屏幕是非常不错的选择:

Qtum量子链实现首个基于比特币UTXO模型的POS智能合约平台 (4)

3.关于微夏Qloha项目开发的一些心得

适应单位转换。小程序支持rpx(responsive pixel)作为尺寸单位,可以根据屏幕宽度自适应,如果一如既往地采用固定单位尺寸进行开发,可能会在部分屏幕上得到不好的效果。

注意模拟工具和真机之间的差异。尽管开发者工具已经可以非常好地预览效果,但还是建议每做完一个feature就在真机上跑一下,最好可以在安卓和iOS两个平台都运行一遍。

不要过度依赖第三方类库。小程序限制了编译后的总大小是1M,如果引入了很多第三方类库,很可能会超限。

事件参数只能变相绑定于视图上。查看小程序的事件文档,会发现如果要在一个列表上绑定点击事件,并传递列表对应的数据,只能通过dataset来实现。如果数据简单而少,那还好办,如果太多了,就会显得十分繁琐。

o <view class="button"

o wx:for="{}" wx:key="buttonKey" wx:for-item="button"

o bindtap="click"

o data-action="{}"

o data-message="{}"

o data-type="{}"

o >

o <text>{}</text>

</view>

关注小程序功能更新。小程序还在不断开放新能力,12月21日更新的功能中,分享和扫码就非常实用。

(二)微信小程序与区块链技术的融合

1.安全性与易用性

想将这点放在前面说,是因为任何涉及到资金的开发,都应该以安全性优先。比特币的掌控权基本等价于于私钥的掌控权,小程序提供了数据缓存,如果和其他钱包一样,将私钥存储在小程序的数据缓存里,既要考虑持久性,还要考虑数据安全性。而同时,小程序以微信为入口,有天然的账号系统,如果再采用正常的注册、登录流程就会很繁琐,加上如果用户可能会更换设备登录而导致原有设备信息丢失,因而将比特币账户和微信账户关联势在必行。于是关联信息存储在服务器,小程序本身凭用户登录凭证去获取信息的方案就油然而生了。最简单粗暴的方法,在每次请求都带上用户信息:

// utils/util.js

import from '../config'

import Promise from '../libs/bluebird.min'

const app = getApp()

function request(path, data, method = 'POST') {

return new Promise(resolve => {

app.getUserInfo(resolve)

}).then(userInfo => {

data = data || {}

data.userInfo = userInfo

return new Promise((resolve, reject) => {

wx.request({

url: BASE_URL + path,

method,

data,

header: {

'content-type': 'application/json'

},

success(res) {

resolve(res)

},

fail(res) {

reject(res)

}

})

})

})

}

module.exports = {

request,

}

2.产品设计

最初的想法来自于Telegram,以对话的形式来进行各种交互,支持比特币和量子币。

Qtum量子链实现首个基于比特币UTXO模型的POS智能合约平台 (5)

随后进行的开发过程中逐渐发现,这样的形式上有很多问题:

对话模式下交互单一,用户在一个界面里可以选择的很少;

部分路径走不通,如用户发送比特币到别的微信账号,因为无法获取到相关信息;

微信本身是聊天工具,此处再做类似聊天界面很奇怪。

于是就决定推翻这个设计。不过经过一段时间开发,熟悉了微信的API,团队重新做了整个功能设计,于是就开始着手设计一个更人性化、更好用的产品。不过当时苦于小程序不支持扫码,为此纠结了很久扫码的功能该如何转化,直到12月21日微信更新支持扫码,无疑给Qloha项目带来了一个利好消息,因为在加密货币行业,大家已经习惯了通过二维码扫描实现支付,后面也将探索如何与Qtum 移动端钱包的深度融合,后面也会介绍Qtum移动端钱包的设计理念。

目前Qloha开发团队正在集成扫码的功能,并且在部署基于微信小程序的智能聊天机器人的功能,来实现与区块链技术的融合,提升大家的加密货币和区块链技术的使用体验!

如果对微夏 Qloha的社区项目感兴趣,欢迎联系Qtum 基金会,foundation@qtum.org , 欢迎开发者、用户的加入!Qtum 基金会也会推出一系列的激励措施,鼓励大家的参与。

作者:铅笔芯 | 来源:Chainb

btcfans公众号

Scan QR code with WeChat

From the Internet
Disclaimer:

Previous: 区块链大爆发?投资者将在2017年陷入困境 Next: 2017年有望成为区块链技术蓬勃发展的一年

Related