web3j

java 以太坊开发利器web3j

▼魔方 西西 提交于 2019-12-02 04:53:37
为了给希望使用web3j的开发人员提供更大的灵活性,项目由多个模块组成。 根据依赖顺序,列一下: org.web3j.utils :最小实用模块。 org.web3j.rlp :递归长度前缀(RLP)编码器。 org.web3j.abi :应用的二进制接口(ABI)编码器。 org.web3j.crypto :用于以太坊交易签名和密钥/钱包管理密码所需的加密库。 org.web3j.tuples :简单元组模块。 org.web3j.core :Web3j除了代码生成器外的核心模块。 org.web3j.codegen: 代码生成器。 org.web3j.console : 命令行工具。 下面的模块只依赖于核心模块: org.web3j.geth :geth专用JSON-RPC模块。 org.web3j.parity :Parity专用JSON-RPC模块。 org.web3j.infura :Infura特定HTTP头支持。 对于大多数用例来说通过web3j来与网络和智能合约交互,核心模块就可以满足你的大部分需要。核心模块的依赖性非常颗粒状,如果你的项目主要集中在与以太坊网络的特定交互上(如ABI/RLP编码、交易签名、而不是提交等),则这些模块很可能需要被使用。 所有模块都发布到Maven Central和Bintray,使用上面列出的名称发布的模块名,即: 对于Java:

java开源库web3j的以太坊过滤器(filter)和智能合约事件(event)教程

▼魔方 西西 提交于 2019-12-02 04:21:59
web3j过滤器提供以太坊网络发生的某些事件的通知,对java和安卓程序员来说很有用。在Ethereum以太坊中支持三类过滤器: 块滤波器(Block filters) 未决交易过滤器(Pending transaction filters) 主题过滤器(Topic filters) 块过滤器和未决交易过滤器提供了在网络上创建新交易或块的通知。 主题过滤器更灵活。允许根据提供的特定标准创建过滤器。 不幸的是,除非你使用 WebSocket 连接到Geth,否则通过JSON-RPC API来处理过滤器是一个繁琐的过程,这里需要轮询以太坊客户端,以便了解HTTP和IPC所请求的实时同步特征,是否有任何新的更新到你的过滤器。此外,块和交易过滤器只提供交易或区块链hash值,因此需要进一步的请求来获得hash对应的实际交易或块。 web3j的 过滤器 解决了这些问题,因此你有一个完全异步的基于事件的API来处理过滤器。它使用 RXJava 的可观测性 Observables ,它提供了与事件协同工作的一致API,这有助于通过功能组合将JSON-RPC调用链接在一起。 注: Infura 不支持过滤器。 块和交易过滤器 接收所有新块把它们添加到区块链(false参数指定我们只需要块就ok,而不需要嵌入交易): Subscription subscription = web3j

java工程师用spring boot和web3j构建以太坊区块链应用

冷暖自知 提交于 2019-12-01 16:58:14
区块链最近IT世界的流行语之一。这项有关数字加密货币的技术,并与比特币一起构成了这个热门的流行趋势。它是去中心化的,不可变的分块数据结构,这是可以安全连接和使用的密码算法。在这种结构中的每一区块通常包含前一个区块的加密哈希,一个时间戳,和交易数据。区块链是点对点管理网络的,并在加入每一个新的块之前进行节点间通信的验证。这是关于区块链的部分理论。简而言之,这是一种技术,它允许我们使用一个去中心化的方式管理双方的交易。现在,问题是我们如何在我们的系统中实现它。 于是以太坊来了。这是一个Vitarik Buterin提供的去中心化的平台,可以通过脚本语言创建开发应用。它的想法是从比特币获得的,并由新的叫Ether即以太坊币的加密数字币驱动。今天,以太币是继比特币之后的第二大加密数字货币。以太坊技术的核心是EVM(以太坊虚拟机),它可以被视为类似于Java虚拟机,而且用一种完全去中心化的节点网络。基于java世界实现以太坊交易我们使用web3j库。这是一个轻量级的、响应式、类型安全的java和Android库结合了以太坊区块链节点。更多的细节可以在这里找到 web3j.io中文版 。 1.本地运行 虽然有许多针对区块链文章,但以太坊相关的网络内容中不容易找到一个解决方案描述如何准备在本地机器使用实例运行以太坊。值得一提的是,一般有两种最基本的客户端可以使用:Geth和Parity。原来

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

眉间皱痕 提交于 2019-12-01 00:20:41
如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤器和事件等,同时也详细说明如何使用web3j提供的API开发接口与以太坊进行交互,是java和android(安卓)工程师学习以太坊应用开发(DApp)的不二选择。 以太坊概述 以太坊是备受关注的区块链,它基于密码学技术和P2P通信技术 构建了一个去中心化的平台,所有的交易同步保存在每个节点中, 通过将区块单向级联成链,以太坊有效的保证了交易的不可篡改: 智能合约平台 以太坊是第一个实现了虚拟机的区块链,因此为智能合约 - Smart Contract - 的运行提供了良好的支持环境。也正因为这个原因,以太坊被称为区块链 2.0,以区别于比特币代表的以数字加密货币为核心特征的区块链1.0。 可以将智能合约理解为机器之间的合同约定,在满足一定条件时自动 执行约定好的逻辑,例如在保险理赔流程中,如果理赔条件满足就自动 将赔偿金释放给出险人,这个流程就可以使用智能合约来实现。 有多种语言可以开发以太坊智能合约,但目前最常用的是类似于JavaScript的 Solidity语言。本课程中将采用Solidity讲解智能合约的开发。 JSON RPC与web3j 如果我们希望构造一个去中心化应用

php程序员如何开发区块链、以太坊、智能合约的教程

喜欢而已 提交于 2019-11-30 23:50:09
以太坊是备受关注的区块链,它基于密码学技术和P2P通信技术 构建了一个去中心化的平台,所有的交易同步保存在每个节点中, 通过将区块单向级联成链,以太坊有效的保证了交易的不可篡改: 智能合约平台 以太坊是第一个实现了虚拟机的区块链,因此为智能合约 - Smart Contract - 的运行提供了良好的支持环境。也正因为这个原因,以太坊被称为区块链 2.0,以区别于比特币代表的以数字加密货币为核心特征的区块链1.0。 可以将智能合约理解为机器之间的合同约定,在满足一定条件时自动 执行约定好的逻辑,例如在保险理赔流程中,如果理赔条件满足就自动 将赔偿金释放给出险人,这个流程就可以使用智能合约来实现。 有多种语言可以开发以太坊智能合约,但目前最常用的是类似于JavaScript的 Solidity语言。本课程中将采用Solidity讲解智能合约的开发。 JSON-RPC 如果我们希望构造一个去中心化应用(DApp),除了智能合约的开发, 通常还需要使用其他开发语言为用户提供操作智能合约的用户接口,例如 开发一个网页、一个手机App或者一个桌面应用。这些代码都需要与以太坊 进行交互。 以太坊规定了每个节点需要实现的JSON RPC API 应用开发接口,该接口是传输无关的,应用程序可以通过HTTP、websocket或IPC等多种 通信机制来使用该接口协议操作以太坊节点:

如何在Spring Boot中开始web3j开发以太坊

老子叫甜甜 提交于 2019-11-30 11:43:59
通过Spring的依赖注入将web3j集成到Spring Boot应用程序中。此处提供了示例应用程序: package org.web3j.examples; import java.io.IOException; import org.apache.http.conn.HttpHostConnectException; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringBootTest public class SpringBootWeb3jSampleApplicationTest { @Autowired private Web3jSampleService

小斌之SpringCloud 开发某某交易所

混江龙づ霸主 提交于 2019-11-30 05:47:45
最近一个月都在弄某某交易所,让之前学的东西能够用上,在这里分享一下收货的东西吧 简介 系统是进行了二次开发,用的是ZTuo开源框架第一个版本,节省了很多时间(坑也挺多,哈哈哈),文章结尾贴源码链接 ,在这里说一声谢谢您们的付出。首先来张我自己画的架构图(献丑了) ######官方架构图 ####技术栈 后端:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot 数据库:Mysql、Mongodb 其他:redis、kafka、阿里云OSS、腾讯防水校验、极验、环信推送、云片短信、web3j 前端:Vue、iView、less 同时提供IOS和Android版本。 当时搭建后端运行环境就弄了两三天,大家搭建注意环境版本问题。K线、盘口数据、成交实时数据都是对接火币网的数据进行websocket推送的,注意火币网的websocket需要梯子。 运行环境问题 使用的是Lombok插件,Eclipse和IDEA安装具体流程百度一下,然后将缺少的jar包放到本地maven仓库中,不然引用不了哦,引用好后将项目的父级进行install一下,不然有一些类找不到,环境需要JDK1.8以上,初始化sql在sql文件夹中配置文件 配置文件打开这个设置会自动建表 #jpa spring.jpa.hibernate.ddl-auto=update

java程序员使用web3j进行以太坊开发详解

落爺英雄遲暮 提交于 2019-11-29 19:18:26
如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤器和事件等,同时也详细说明如何使用web3j提供的API开发接口与以太坊进行交互,是java工程师学习以太坊应用开发的不二选择。 以太坊概述 以太坊是备受关注的区块链,它基于密码学技术和P2P通信技术 构建了一个去中心化的平台,所有的交易同步保存在每个节点中, 通过将区块单向级联成链,以太坊有效的保证了交易的不可篡改: 智能合约平台 以太坊是第一个实现了虚拟机的区块链,因此为智能合约 - Smart Contract - 的运行提供了良好的支持环境。也正因为这个原因,以太坊被称为区块链 2.0,以区别于比特币代表的以数字加密货币为核心特征的区块链1.0。 可以将智能合约理解为机器之间的合同约定,在满足一定条件时自动 执行约定好的逻辑,例如在保险理赔流程中,如果理赔条件满足就自动 将赔偿金释放给出险人,这个流程就可以使用智能合约来实现。 有多种语言可以开发以太坊智能合约,但目前最常用的是类似于JavaScript的 Solidity语言。本课程中将采用Solidity讲解智能合约的开发。 课程地址: http://xc.hubwiz.com/course

2018年Solidity最佳IDEs

喜夏-厌秋 提交于 2019-11-29 15:08:27
Solidity是一种以智能合约为导向的编程语言。这是一种只有四年的年轻语言,旨在帮助开发基于以太坊数字货币的智能合约。 理解它官方文档应该是学习Solidity的最佳来源: solidity.readthedocs.io 想在以太坊的网络上建立自己的加密货币吗?想拥有自己的初始代码产品吗?以下是您今天可以使用的最佳Solidity IDE。 Remix IDE Remix IDE 是基于浏览器的,并且集成了编译器。没有服务器端组件。 官网: https://remix.ethereum.org github: https://github.com/ethereum/remix-ide EthFiddle 有点像 jsfiddle , Ethfiddle 是一个可靠的代码共享网站,也是一个测试智能合约的地方。Solidity代码片段与朋友分享,或查看来自网络的酷代码片段。 官网: https://ethfiddle.com/ JetBrains IDE 你可以使用 Intelij IDEA 或任何其他 JetBrains IDE 的solidity插件。 插件官网: JetBrains Plugin Repository Github: intellij-solidity/intellij-solidity YAKINDU Solidity Eclipse Solidity插件