JSON-RPC

5个必备PHP区块链开发包

萝らか妹 提交于 2020-08-15 22:20:54
本文介绍5个最常用的PHP区块链开发库,适合PHP开发人员在以太坊/比特币等主流区块链的对接、去中心化应用开发、量化交易算法开发等应用场景中选择使用。 1、CCXT - 支持PHP的区块链量化交易开发库 CCXT是一个支持PHP/Python/JavaScript的区块链数字加密货币交易开发库,支持超过120个区块链数字加密货币交易所。 CCXT的目标是帮助开发人员、技术性交易者、数据科学家和金融分析师构造交易算法,它可以连接众多的区块链数字加密货币交易所并自动进行交易,可用于数据分析、数据可视化、指标跟踪、量化交易等软件工程领域。 CCXT的主要特性包括: 支持众多的区块链数字货币交易所 完整支持不同交易所的公开和私有API 提供可选的跨交易所的统一API 支持Node/Python/PHP和web浏览器 CCXT中文文档 | CCXT官方下载地址 2、Web3.php - PHP版本的以太坊区块链及生态访问接口 Web3.php是访问以太坊区块链及生态系统的PHP版本的访问接口,支持原生的ABI解析和智能合约交互。 下面是使用Web3.php查询以太坊区块链的节点版本的PHP代码: use Web3\Web3; $web3 = new Web3('http://localhost:8545'); $web3->clientVersion(function ($err,

.NET 开源项目 StreamJsonRpc 介绍

白昼怎懂夜的黑 提交于 2020-08-09 11:33:41
StreamJsonRpc 是一个实现了 JSON-RPC 通信协议的开源 .NET 库,在介绍 StreamJsonRpc 之前,我们先来了解一下 JSON-RPC。 JSON-RPC 介绍 JSON-RPC 是一个无状态且轻量级的远程过程调用(RPC)协议,其使用 JSON(RFC 4627)作为数据格式。 目前 JSON-RPC 的版本已发展到 2.0,JSON-RPC 2.0 与 1.0 的约定规范是不一样的。2.0 包含一个名为 jsonrpc 且值为 2.0 的成员,而 1.0 版本是不包含的。所以我们可以很容易在两个版本间区分出 2.0。 JSON-RPC 在客户端与服务端之间交换的所有成员名应是区分大小写的,函数、方法、过程都认为是可互换的。客户端被定义为请求对象的来源及响应对象的处理程序;服务端被定义为响应对象的起源和请求对象的处理程序。 请求对象 发送一个请求对象至服务端代表一个 RPC 调用,JSON-RPC 2.0 规定一个请求对象包含下列成员: jsonrpc:指定 JSON-RPC 协议版本的字符串,必须准确写为“2.0”。 method:包含所要调用方法名称的字符串,以 rpc 开头的方法名,用英文句号连接的为预留给 rpc 内部的方法名及扩展名,且不能在其他地方使用。 params:调用方法所需要的结构化参数值,该成员参数可以被省略。 id

Serverless 原生框架:Malagu Framework

谁说胖子不能爱 提交于 2020-07-28 20:15:02
背景 早期,Serverless Framework 的定位是偏运维侧,通过 Yaml 文件定义规则,Serverless Framework 负责部署到对应的云厂商。Serverless Framework 提供了一种方案去适配不同的云厂商。 最近 Serverless 提供了一个 Serverless Component 方案,这个方案更面向开发侧。在同一时间,Malagu Framework 也想到了 Component 类似的方案。 Malagu Framework 一开始定位就是偏开发侧的。Malagu Component 与 Serverless Component 解决的问题是一样的:适配不同平台的服务(阿里云函数计算、阿里云 oss、腾讯云函数、aws lambda 等等)和封装通用的业务代码。 Malagu Component 与 Serverless Component 设计上也存在不同的地方,后面可以单独写一篇文章介绍一下。 Malagu 由 CLI + Framework 组成,其中 Framework 本身就是基于 Malagu Component 实现。 简介 Malagu 是基于 TypeScript 的 Serverless First、可扩展和组件化的应用框架。 在 Malagu 的世界里 一切皆组件 ,应用也是组件:根组件

JSON RPC - What is the “id” for?

空扰寡人 提交于 2020-07-04 10:10:29
问题 I don't understand what the ID is for in JSON RPC. Also, how bad is it considered to not use JSON-RPC.org's standards when developing a toolkit? There seems to be some ambiguity in the JSON-RPC world. P.S. The ID I'm referring to is the id in here: {"params":["Hello","World"],"method":"hello_world","id":1} 回答1: You're not guaranteed to get your answers back in the order you asked for them; the id is to help you sort that out. 回答2: The "id" is returned in the corresponding response object, so

JSON RPC - What is the “id” for?

南楼画角 提交于 2020-07-04 10:10:06
问题 I don't understand what the ID is for in JSON RPC. Also, how bad is it considered to not use JSON-RPC.org's standards when developing a toolkit? There seems to be some ambiguity in the JSON-RPC world. P.S. The ID I'm referring to is the id in here: {"params":["Hello","World"],"method":"hello_world","id":1} 回答1: You're not guaranteed to get your answers back in the order you asked for them; the id is to help you sort that out. 回答2: The "id" is returned in the corresponding response object, so

利用Aria2构造自己的下载工具(一)

放肆的年华 提交于 2020-05-04 10:46:44
Aria2 是一款轻量级的跨平台的多线程下载工具,支持 Http/Https、Ftp、BitTorrent、Metalink 等主流协议,功能非常全面。和IDM或EagleGet这些下载工具相比,aria2是一款纯命令行工具,没有图形界面,但可以通过rpc的方式提供交互式下载,这个是它的一个缺点,同时也是它的一个优点。它没有图形界面,使得可以在远程服务器、路由器、nas等平台上运行它,通过rpc交互的方式,实现离线下载。 虽然上现在已经有webui-aria2, 以及 yaaw等一些第三方的比较成熟的界面工具。但了解一下其交互协议,实现一个更加灵活,更适合自己的功能强大的下载工具,对于程序员来说,还是一个比较指的折腾的的事情。 配置Aria2 在启动Aria2前,我们需要进行一些参数的配置,这些配置有两种方式,通过命令行或配置文件。当默认的配置较多的时候,通过命令行的方式显得冗繁和不直观,我们一般是通过配置文件的方式,这里是一个配置文件示例: # # '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## # # 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ## # # 文件保存相关 ## # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 dir= R:\Downloads # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本,

比特币学习笔记(三)---配置文件和启动

試著忘記壹切 提交于 2020-04-29 04:32:17
编译后的几个主要程序 bitcoin-qt 客户端图形界面版 bitcoind /src/bitcoind Bitcoin简洁命令行版,也是下一步源代码分析的重点(不能与Bitcoin Core同事运行,如果不小心尝试同时运行另外一个客户端,它会提示已经有一个客户端在运行并且自动退出) bitcoin-cli /src/bitcoin-cli Bitcoind的一个功能完备的RPC客户端,可以通过它在命令行查询某个区块信息,交易信息等 bitcoin-tx /src/bitcoind 比特币交易处理模块,可以进行交易的查询和创建 我们现阶段主要学习bitcoind这个程序,这个程序的启动参数大致如下 //bitcoind 命令通用格式 bitcoind [选项] bitcoind [选项] < 命令 > [参数] 将命令发送到 -server 或 bitcoind bitcoind [选项] help 列出命令 bitcoind [选项] help < 命令 > 获取该命令的帮助 //bitcoind常见命令 -conf= < 文件名 > 指定配置文件(默认:bitcoin.conf) -pid= < 文件名 > 指定 pid (进程 ID)文件(默认:bitcoind.pid) -gen 生成比特币 -gen=0 不生成比特币 -min 启动时最小化 -splash

【转载】bitcoin全节点部署及bitcoind bitcoin-cli命令使用解释

烂漫一生 提交于 2020-04-28 15:35:09
服务器配置: 操作系统: ubuntu 16.04 CPU: 4U 内存: 16G #一般来说4G就够,但如果要查历史记录,需要加载完整的交易索引表-tindex,这导致需要8G+的内存 硬盘: 500G #比特币从08年开始运行,已经积累了大量数据,区块链内容大小达210G。 带宽: 10MB+ 安装部署: 下载地址: https://bitcoincore.org/en/download/ root@wallet-test1:/data # tar xf bitcoin-0.17.1-x86_64-linux-gnu.tar.gz root@wallet-test1:/data # ln -s bitcoin-0.17.1 bitcoin #用软链接的方式在升级程序时,可不用重新设置环境变量 root@wallet-test1: /data# mkdir -p coin/btccoin/ #数据存储目录 root@wallet-test1:/data # vim /etc/profile.d/bitcoin.sh #添加环境变量 export PATH=/data/bitcoin/bin:$PATH root@wallet-test1:/data # source /etc/profile.d/bitcoin.sh #加载环境变量 配置文件: -conf=<file>

企业以太坊Besu入门教程【原Pantheon】

此生再无相见时 提交于 2020-02-27 12:20:38
Besu是Hyperledger中的企业以太坊产品,其最大优势在于兼容以太坊主网。本教程介绍如何使用Hyperledger Besu快速启动一个企业以太坊网络并利用JSON RPC进行数据查询和交易提交,以及如何使用Truffle开发企业以太坊DApp并使用内置的工具进行数据调试和运维监控。 1、启动企业以太坊网络 以太坊教程推荐: Dapp入门 | 电商Dapp实战 | Token实战 | Php对接 | Java对接 | Python对接 | C#对接 | Dart对接 首先克隆Besu的quickstart仓库的源代码: git clone https://github.com/PegaSysEng/besu-quickstart.git 然后进入besu-quickstart目录,执行如下命令构建besu的docker镜像: ./run.sh 上面的命令会构建docker镜像并启动4个容器来模拟一个包含6个besu节点的企业以太坊网络。当脚本执行完成后,你可以看到如下输出信息: ************************************* Besu Quickstart <version> ************************************* List endpoints and services --------------------

Android和Java以太坊开发区块链应用使用web3j类库

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