bitcoinj

ImToken 钱包的研究

懵懂的女人 提交于 2020-10-09 05:25:53
这文章是要研究 ImWallet 钱包library的实际代码,在 https://github.com/consenlabs/token-core-android. The library code was previously updated two years ago. It should be superseded by TokenCoreX. The library supports Bitcoin, Ethereum blockchain. This library is written in Java for Android app. The library implements key management and signing of transaction. There are two parts in this library, wallet and foundation.The wallet part contains address, keystore, transaction signing, user identity, wallet management code. When wallet object is generated, it is passed a keystore . The keystore contains the metadata

Bitcoinj library on android hung on installing APK

匆匆过客 提交于 2020-01-06 05:23:08
问题 I am trying to get a basic running app that would use the bitcoinj library to create a wallet and sync. Very basic. I used bitcoinj library for my desktop application with no problems. When i try to make one for android it hangs on "...Installing APK" when trying to run it on my phone. This is my code. import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ProgressBar; import org.bitcoinj.core.Context; import org.bitcoinj.core.NetworkParameters;

How to create a pem key in string format from base64 encoded key

岁酱吖の 提交于 2020-01-01 19:26:30
问题 I'm trying to create a pem key from a ecdsa private key, I have to use a pem string in another function to create a JWT but when I'm trying var base64key = 'MDc4M2UwODJiNmFhMmVmOWIxZDdjN2YwMTYxMGM4M2ZkZTk2OTE3OWVlNzdlYzBmNTJmY2NiNjBhMDBjNTA0OQ=='; var privKey64 = '-----BEGIN PRIVATE KEY-----\n'+base64key+'\n-----END PRIVATE KEY-----'; var sJWS = KJUR.jws.JWS.sign(null, {alg: "ES256"}, privKey64); So when I'm trying to feed this pem key to sign function I'm getting following error *init failed

比特币如何使用BIP70支付协议API

喜夏-厌秋 提交于 2019-12-05 01:38:55
支付协议是用于指代BIP70,71,72和73中指定的协议的术语。支付协议旨在通过用可编码更复杂参数的小文件替换普遍存在的比特币地址来为比特币添加附加功能。它指定了直接在资金发送方和接收方之间流动的支付请求,付款和支付方式的格式。 支付协议对于比特币的各种重要功能的开发至关重要,因此,了解它如何使用比特币非常重要。本文介绍了基本功能,并显示了将其集成到钱包应用程序中的一些示例代码。 具体而言,该协议的第1版提供: 1.接收器/商家使用任意脚本请求多个输出的方式,而不仅仅是单个付费密钥哈希类型的输出。多个独立交易可以满足付款,允许将来实施基于 规避合并 的隐私技术。 2.自由文本备忘录字段,因此商家可以填写由钱包存储的购买细节,及用户在付款时附加消息。 3.到期时间,过期的付款请求可能会被视为无效。这允许接收器在服务器端绑定其资源使用并放弃从未付费的请求。 4.发行时间,付款请求知道何时发出——有利于记录保存。 5.二进制cookie-esque字段,在提交支付交易时将简单地回显给服务器,允许商家实现无状态后端。 6.用户指定的退款地址。 7.使用X.509数字证书对上述所有内容进行签名的可选功能,从而将付款请求绑定到某种经过验证的身份。 支付请求本身可以进行数字签名这一事实可以实现一些非常重要和有用的功能。中间的一个人不能重写输出来劫持付款

Bitcoinj will not compile onto Nexus 5 with Android Studio

拟墨画扇 提交于 2019-12-04 01:52:34
问题 I am building an app using Bitcoinj and I am trying to run it on a Nexus 5. When using grade to build Bitcoinj - compile 'org.bitcoinj:bitcoinj-core:0.12' - and subsequently running the app on the phone, I receive this error... "Failure [INSTALL_FAILED_NO_MATCHING_ABIS]" Does anyone have any idea why this is, or how to fix it? Thanks, Dan. 回答1: When trying to run an android app that uses the BitcoinJ library for Nexus 5, with the latest android version 5.0 (Lollipop) you will get this error

用java简单分析下比特币区块链

孤人 提交于 2019-11-30 23:49:06
我假设你已经对比特币的含义有一个模糊的概念,并且你对交易背后的机制有一个简单的理解:对地址进行支付(这是匿名的,因为它们不能直接链接到特定的个人),所有交易都是公开的。交易以块的形式收集,块在区块链中链接在一起。 你可以将区块链视为一个不断更新且可供所有人访问的大型数据库。你可以使用Bitcoin Core等软件下载完整的区块链。安装软件后,你的安装需要几周时间才能同步完成。请注意,在撰写本文时,区块链的大小超过130Gb,请考虑到这一点...... 如果你有可用的区块链数据(不一定是整个区块链,你也可以使用它的子集),可以使用Java进行分析。你可以从头开始完成所有工作并从文件中读取原始数据等。让我们跳过此步骤并改为使用库。大多数编程语言都有几种选择。我将使用Java和bitcoinj库。这是一个大型库,可用于构建钱包,在线支付等应用程序。我将使用它的解析功能。 首先在 https://bitcoinj.github.io/ 下载该库的jar文件(我正在使用 https://search.maven.org/remotecontent?filepath=org/bitcoinj/bitcoinj-core/0.14.4/bitcoinj-core-0.14.4-bundled.jar )。然后,下载 SLF4J ,解压缩,然后获取名为slf4j-simple-x.y.z

6个应当了解的Java比特币开源项目

蓝咒 提交于 2019-11-29 18:53:24
比特币是第一种被广泛认可并获得众多支持的数字加密货币,如果你考虑在自己的Java系统中增加对比特币的支持,那么相信下面这6个使用Java开发的比特币开源项目会对你所帮助: 1、bitcoinj 代码地址: https://github.com/bitcoinj/bitcoinj bitcoinj是一个得到广泛应用的比特币协议的java实现,它包含一个完整的比特币SPV节点旳实现,你可以用它快速构建比特币钱包应用、发送/接收比特币,并且不需要额外部署比特币全节点软件: Bitcoinj的功能相当强大,但学习曲线也很陡,如果你希望快速掌握Bitcoinj的使用方法,可以访问汇智网提供的在线互动教程: Java比特币开发详解 。 2、XChange 代码地址: https://github.com/knowm/XChange XChange是一个用于和数字货币交易所对接的Java开发库,它目前支持超过60家比特币/山寨币交易所,通过一致的API接口提供交易和市场数据: 3、bisq 代码地址: https://github.com/bisq-network/bisq bisq实现了一个去中心化的比特币交易网络,它使用P2P技术和多重签名托管来保障去中心化比特币交易的安全,并且包含人工仲裁机制来解决争端: 4、bxbot 代码地址: https://github.com/gazbert

如何用bitcoinj开发java比特币应用

岁酱吖の 提交于 2019-11-29 18:53:15
当你希望使用java开发比特币应用,或者希望应用与比特币对接时,bitcoinj是最佳的选择,它是最早也是目前最成熟的比特币java开发包,bitcoinj包含了比特币规范的大部分实现,例如密钥、地址、脚本、SPV协议等。利用bitcoinj可以快速开发支持比特币的java应用,例如交易所、比特币钱包、android手机游戏等等。 bitcoinj的功能相当丰富,但文档并不易懂,学习bitcoinj的最佳途径是汇智网的在线互动教程 java比特币开发详解 ,本文内容即节选自该课程。 什么是比特币? 当我们谈到比特币时,其实在不同的场景下有不同的指代。 比特币首先是一种数字加密货币,用户可以通过比特币网络进行 比特币转账或商品结算,就和传统的货币一样: 不过比特币是基于密码学技术的虚拟化货币,它没有实体,仅仅隐含在从发送方到接收方的交易中,接收方必须使用其持有的密钥来 消费收到的比特币。 对于科技从业者而言,比特币则更多了一层含义:比特币对应着 一种划时代的数字加密货币系统,其内容包含通信协议、激励机制、实现代码 与承载网络等: 事实上,比特币是数十年来密码学技术、分布式计算等领域的集大成者, 它不是第一个出现的数字货币,但无疑是最成功的,一个洞察了人性的虚拟产品。 区块链结构 比特币是一个专用数据库,它只保存一种类型的数据记录 —— 交易,例如 张三转给李四几个币

7个值得关注的Java区块链项目【2019】

一曲冷凌霜 提交于 2019-11-29 09:39:18
如果你是一个对区块链感兴趣的Java工程师,那么除了阅读书籍或博客之外,更好的学习方法是亲自动手,深入了解以下7个最流行的Java区块链项目。 1、Corda Corda可能是Java开发人员进入区块链世界的最自然的出发点。Corda是一个JVM项目,它建立在很多流行且广泛使用的开源项目之上,例如Apache Artemis、Hibernate、Apache Shiro、Jackson以及关系型数据库。Corda受到了比特币的启发,但是它包含了业务流程、消息以及其他企业应用中的熟悉的概念。 项目链接: https://github.com/corda/corda Github Star:3002 2、Pantheon Pantheon是一个Java版本的完整的以太坊节点实现,创建这个项目的出发点就是吸引Java生态中的开发者进入区块链世界。 项目链接: https://github.com/PegaSysEng/pantheon Github Star:393 3、Bitcoinj Bitcoinj是最流行的比特币协议的Java实现。如果你希望直接从比特币开始你的区块链开发,这就是你应该深入的项目。 项目链接: https://github.com/bitcoinj/bitcoinj Github Star:3405 在线教程: Java比特币开发详解 — 汇智网 4、Web3j

iOS和Android比特币开发3个最受欢迎的应用SDK(示例)

雨燕双飞 提交于 2019-11-28 18:48:21
如今的比特币不仅是加密货币还是数字支付系统。实际上,由于其独特的功能,比特币已成为投资,储蓄甚至赚取更多钱的真正工具。在本文中,我们想谈谈3个最受欢迎的比特币应用SDK,它可以帮助您开发自己的应用。 感谢他们的功能,你可以创建比特币钱包,投资者工具,比特币游戏或任何其他与此加密货币相关的应用程序。此外,为了检查分析的SDK的受欢迎程度,我们的移动应用程序开发团队创建了三个比特币钱包的真实示例,见下文。 剑桥大学的研究:2017年有290万到580万人使用加密货币钱包,其中大多数都使用比特币。 Blockchain Blockchain 被认为是世界上最受欢迎的比特币钱包。如今,全球有超过1400万个钱包在BC注册。此外, Blockchain 为开发人员提供了一整套免费API,因此我们开始使用它进行分析。 支持的平台 :Android,iOS,Windows,Mac OS,Linux Blockchain 是非常受欢迎的服务。它以API(Python,Java,NET,Ruby,PHP,Node等)的库形式支持许多编程语言。 服务使用两个不同的API密钥: Receive Payments V2 API KEY:网站接收比特币付款的简便方法。此选项完全免费且安全。它是商务和个人使用的理想选择。 区块链钱包 Blockchain Wallet API KEY:完全访问此服务的所有功能