主页 > imtoken官网苹果版 > 教你如何开发加密货币钱包(一)

教你如何开发加密货币钱包(一)

imtoken官网苹果版 2023-02-09 07:43:23

教你如何开发加密货币钱包(一)

永启科技研发中心

科技驱动科技赋能

3 款主流比特币钱包应用

当你在应用商店中寻找比特币APP时,你会发现只有几种类型,比特币钱包APP是最受欢迎的。因此,在本文中,我们将讨论由 Coinbase、Blockchain Luxembourg Ltd. 和比特币钱包开发商开发的比特币钱包 APP。为方便起见,我们将简称为 Coinbase、Blockchain 和 BitcoinJ(基于其技术)。

首先,让我们简要介绍一下这三个应用程序。Blockchain Wallet 比特币钱包通常被称为世界上最受欢迎的比特币钱包。根据最近的统计,有来自 140 个国家的超过 1400 万用户注册。它适用于 Android 和 iOS,但也适用于 Windows、Mac OS 和 Linux。这个钱包在 Google Play 上有超过一百万的下载量,平均得分为 4.4。

Coinbase 比特币钱包是另一个流行的比特币钱包 APP,由 Coinbase 开发。它具有适用于 Android 和 iOS 的移动应用程序,但也可通过网络浏览器访问。

比特币钱包开发人员创建了另一个非常受欢迎的移动应用程序 - BitcoinJ,但是,它仅适用于 Android(在 Google Play 上的下载量超过 100 万)。

比特币钱包APP应用主要功能

如上所述下载比特币用户注册,比特币钱包应用程序具有相似和不同的功能。我们想分别分析每个应用程序,然后概述比特币钱包的主要功能。

币库

该应用程序允许用户通过姓名、电子邮件或数字货币地址买卖比特币和莱特币。它有一个特殊的保险库功能,人们可以安全地存储他们的比特币。此外,该应用程序还显示用户的商家服务列表,例如戴尔、Expedia、Overstock 等。

Coinbase 钱包为用户提供价格图表,以跟踪实时和历史加密货币价格。此外,它使用警报来通知人们价格、交易和其他重要新闻的变化。客户可以通过感应或二维码轻松发送和请求资金。为此和其他目的,您可以将 PayPal、银行账户、信用卡和借记卡连接到钱包。应用程序的安全性由密码保证。如果您的手机被盗或丢失,它可以保护应用程序。在这种情况下,您可以在此应用中远程拒绝访问您的资金。

区块链

该应用程序允许用户立即向世界上的任何人发送和接收比特币,并以 BTC、mBTC 或比特显示比特币金额。区块链钱包也可以离线工作。区块链钱包为客户提供二维码扫描、纸质钱包导入和搜索所需区域的比特币商家。

该应用程序向您显示实时比特币价格并发送交易通知。在这种情况下,PIN 和密码都可以保护您的比特币。该钱包有一个完全加密的客户端,因此该公司声称它无法查看用户的交易或钱包余额。

比特币J

如上所述,这个比特币钱包不需要注册,因为它是点对点的。BitcoinJ 应用程序具有标准功能,例如通过近距离通信发送和接收比特币、二维码或比特币 URL、比特币余额显示、法定汇率等。

此外,通过这个钱包,您可以获得最常用的比特币地址、系统通知、扫描二维以获得更快的支付可能性。BitcoinJ 使用户能够通过蓝牙扫描纸质钱包或离线支付。应用程序设计简单而现实。它支持纵向和横向模式,适用于平板电脑。顺便说一句,Bitcoin.org 的官方比特币钱包展示推荐包括 Coinbase 和 BitcoinJ。

总结一下,比特币钱包的主要功能如下:

授权:注册/登录表格以访问比特币钱包。

比特币钱包:发送和接收比特币,检查余额。

最常用地址:访问常用地址。

汇率:跟踪比特币价格。

纸钱包电话:扫描比特币纸钱包。

二维码扫描:轻松发送和请求资金。

商家服务:浏览比特币商家并作为商家工作。

推送通知:交易警报、比特币价格变化等。

安全性:设置密码和 PIN 以保护应用程序。

类似于比特币钱包应用的技术栈

现在我们将讨论创建像 Coinbase、Blockchain 或 BitcoinJ 这样的应用程序所需的技术堆栈。由于这些应用程序具有不同的结构,我们将分别对其进行描述。

币库

2015 年,它成为第一家获得许可的美国比特币交易所。他们为用户提供了许多金融工具,包括用于交易数字货币的 Coinbase Exchange。后来更名为 GDAX - 全球数字资产交易所。现在它是世界上流动性最强的数字资产交易所之一。

GDAX 是使用 Node.js、Java、PostgreSQL、Redis 和 Docker 编排组合构建的。创建应用程序中编写的交换后端具有模块化和可扩展的设计,非常适合添加新功能和数字资产。此外,Coinbase 早期使用了各种云技术,但现在主要基于 Amazon Web Services (AWS)。

例如下载比特币用户注册,该公司在 AWS 中有一个流数据洞察管道,并通过由 Amazon Kinesis 管理的大数据处理服务处理实时交换分析。这些数据后来经过一系列复杂的技术,包括 AWS CloudTrail、Amazon Simple Storage Service(Amazon S3)、AWS Lambda、Kinesis Containers 等。每天至少处理 1 TB 的数据。

该公司的所有网络都是通过 AWS CloudFormation 模板设计、构建和维护的。Coinbase 还使用 Amazon Virtual Private Cloud (Amazon VPC) 端点来优化 Amazon S3 吞吐量,并使用 Amazon WorkSpaces 为世界各地的员工配置基于云的桌面。

至于整个 Coinbase 服务,开发人员使用了许多不同的技术,包括 Ruby、Node.js、PostgreSQL、MongoDB、Redis、Swift(适用于 iOS)和 Java(适用于 Android)的组合。此外,您可以与 AngularJS 开发公司合作制作您自己的加密应用程序。

区块链

Blockchain Luxembourg Ltd. 使用不同的流行技术建立了他们的比特币帝国。该公司宣布了其中的几个。例如,Java 主要用于为服务创建后端,但开发人员也将 Clojure 和 Node 用于较小的后端系统。前端部分基于AngularJS,数据库为MySQL。

区块链钱包可在 iOS、Android 和 Web 上使用。该公司在其应用程序中使用了许多框架。以下是其中的一些:iOS:Storyboards、JSBridgeWebView。Android:Gradle、BitcoinJ、Apache commons、Junit。

要创建 Web 应用程序,公司需要 AngularJS、NPM、NodeJS、Travis、ES6、Jasmine(用于测试)、BitcoinJS、Bootstrap 等。

比特币J

比特币钱包是一个独立的安卓设备比特币支付应用程序,完全没有自己的服务器(它使用 P2P)BitcoinJ SDK。它是 GitHub 上的一个开源项目,因此任何人都可以制作类似或外观相似的应用程序。BitcoinJ 本身是一个用 Java 构建的开源比特币客户端库。它还实现了比特币网络协议。该库可作为 JAR 下载,或使用 Maven 或 Gradle。人们也可以从 Github 获取代码。

后端结构

如您所知,后端是开发过程中非常重要的一部分。所以我们也将分别描述这三个比特币钱包应用程序的后端。

币库

要基于 Coinbase API 和 SDK 开发应用程序,您需要创建一些基本元素,例如用户故事管理、通知和区块链。为了使这些元素发挥作用,可以使用各种工具,包括比特币网络、Google API、AWS、EDS、Rest API 等。Coinbase 应用程序等数据库使用 Redis、MongoDB 和 Postgre SQL 技术。

Google APIs - 是一组由 Google 开发的应用程序编程接口。它们允许与 Google 服务通信并与其他服务集成。例如,在我们的案例中,使用了 Android 上的 Google Analytics、Passcode Smart Lock 和 Google Maps。

EDS(Email Delivery Service)适用于确认电子邮件、更改忘记的密码等。这种情况下,您可以使用 Sendgrid 或 Amazon SES。

AWS - 亚马逊网络服务提供可靠、可扩展和廉价的云计算服务。自 2014 年起,Coinbase 将使用该服务,包括 Amazon S3、Amazon RDS 和 Amazon EC2。

图例:Coinbase 后端

区块链

区块链后端与 Coinbase 有点类似,这里不再赘述。它还包括用户故事管理、通知服务,当然还有区块链技术。要创建区块链后端,开发人员主要使用 Java,但小型后端系统也需要 Clojure 和 Node。此外,Blockchain 有多种 API 可用于不同的编程语言,包括 Python、Java、.NET (C#)、Ruby、PHP 和 Node。

比特币J

基于 BitcoinJ 的比特币钱包具有更简单的结构。要创建这样的东西,您需要 BitcoinJ API 和 REST API。BitcoinJ 是用 Java 实现的,但可以从任何与 JVM 兼容的语言中使用,包括 C++、JavaScript、Ruby、Python 等。BitcoinJ 库具有 Apache 许可证。

该 API 允许用户使用 TestNet3(官方比特币测试网络)、MainNet(比特币交易的原始和主要网络)并设置私有服务器。BitcoinJ 功能非常丰富。最吸引人的功能之一是 SPV 模式,它允许用户仅下载比特币区块链的一部分并使用它。

图例:BitcoinJ 后端

预计开发时间

我们估计开发像 Coinbase 比特币钱包应用程序这样的应用程序需要将近 700 个小时。该应用程序最难的部分是交易 - 200 小时,发送/请求资金 - 120 小时,通知 - 100 小时,配置文件 - 100 小时。此外,登录/注册需要 40 小时,仪表板开发需要 40 小时。

各种次要的应用程序细节添加需要 100 小时。因此,开发像 Coinbase 这样的应用程序是最耗时的。然后我们还有来自 Blockchain 和 BitcoinJ 的比特币钱包。虽然该过程的主要组成部分略有不同,但每个项目都需要近 550 小时的工作。

区块链钱包应用开发每个内容所需的开发时间为:APP骨架,32小时,主屏,32小时,PIN码屏24小时,获取比特币屏,32小时,发送比特币屏,32小时,二维码识别,40小时,相机,40 小时,通讯录屏幕 32 小时。备份钱包屏幕,24 小时,从备份恢复,24 小时,设置屏幕 24 小时。登录屏幕,24 小时。注册屏幕,32 小时。电子邮件确认屏幕,32 小时。导航菜单,32 小时,地图屏幕,32 小时。我的钱包屏幕,24 小时。将钱包连接到设备,32 小时。

BitcoinJ的比特币钱包应用开发每个内容所需的开发时间为:APP骨架,32小时,主屏,32小时,PIN码屏,16小时。获取比特币屏幕,24小时,发送比特币屏幕,24小时,二维码识别,40小时,相机,40小时,通讯录屏幕32小时。备份钱包屏幕,24 小时,从备份恢复,24 小时,设置屏幕 40 小时。安全屏幕 32 小时,货币屏幕,32 小时,从钱包屏幕获取,32 小时。网络监视器屏幕,32 小时。报告问题屏幕,32 小时。帮助,24小时。

三个比特币钱包应用的Android版预计开发时间为:700/550/550小时,iOs版预计开发时间为:600/500/450小时。

待续......

永启科技研发中心