JSON-RPC

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等多种 通信机制来使用该接口协议操作以太坊节点:

TypeError: 'Response' object has no attribute '__getitem__'

拟墨画扇 提交于 2019-11-30 16:57:18
问题 I am trying to get a value from a response object in a dictionary, but I keep running into this error, am I wrong in thinking you __getitem__ is more commonly used for indexing in classes? Here is the code: import json import requests from requests.auth import HTTPBasicAuth url = "http://public.coindaddy.io:4000/api/" headers = {'content-type': 'application/json'} auth = HTTPBasicAuth('rpc', '1234') payload = { "method": "get_running_info", "params": {}, "jsonrpc": "2.0", "id": 0, } response

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

Php如何调用以太坊JSON RPC接口

蹲街弑〆低调 提交于 2019-11-29 18:54:05
以太坊规定了每个节点需要实现的JSON RPC应用开发接口,如果希望使用PHP开发一个以太坊区块链 上的去中心化应用(DApp),首先要解决的问题就是如何使用PHP调用 以太坊JSON RPC接口 : 如果你希望将网站快速接入以太坊,例如支持以太币支付,或者发行自己的代币,那么这个 Php以太坊开发详解 课程提供了最佳的学习路径。 虽然接口规范并没有对传输层进行约定,但大多数以太坊节点软件都实现了对HTTP协议的支持。 因此我们可以使用Php的HTTP开发包来进行调用。例如,下面的代码使用guzzle这个http开发包来获取以太坊节点旳版本信息: <?php $client = new GuzzleHttp\Client(); $opts = [ 'json' => [ 'jsonrpc' => '2.0', 'method' => 'web3_clientVersion', 'params' => [], 'id' => time() ] ]; $rsp = $client->post('http://localhost:8545',$opts); echo $rsp->getBody() . PHP_EOL; ?> 当然你也可以借助于一些开源的封装,不过在php社区中,目前还缺乏得到统一认可的、相对比较成熟的以太坊开发包,因此在DApp的开发过程中

Omnicore RPC API中文文档

半城伤御伤魂 提交于 2019-11-29 18:53:34
OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行、众售等应用,USDT就是基于OmniCore实现的数字加密货币。 OminCore的JSON RPC API是在比特币RPC API基础上的扩展,增加了与omni协议相关的接口。OmniCore的RPC API中文文档由汇智网翻译整理,访问地址: OmniCore RPC API文档 - 汇智网 。 如果希望快速掌握比特币应用开发,推荐汇智网的在线互动课程: Php比特币开发详解 Java比特币开发详解 来源: oschina 链接: https://my.oschina.net/u/3794778/blog/2999201

how to check if a JSONArray is empty in java?

為{幸葍}努か 提交于 2019-11-29 16:26:06
问题 I am working on an android app that get json content of a webservice called "WebUntis". The Json content i am getting looks like: {"jsonrpc":"2.0","id":"req-002", "result":[ {"id":125043,"date":20110117,"startTime":800,"endTime":850, "kl":[{"id":71}], "te":[{"id":23}], "su":[{"id":13}], "ro":[{"id":1}]}, {"id":125127,"date":20110117,"startTime":1055,"endTime":1145, "kl":[{"id":71}], "te":[{"id":41}], "su":[{"id":19}], "ro":[{"id":31}]}, ...]} As you can see in the result-array there are also

Convert InputStream into JSON

只愿长相守 提交于 2019-11-29 05:52:06
I am using json-rpc-1.0.jar.Below is my code. I need to convert InputStream object into JSON since the response is in JSON. I did verify the json response obtained from Zappos API. It is valid. PrintWriter out = resp.getWriter(); String jsonString = null; URL url = new URL("http://api.zappos.com/Search?term=boots&key=my_key"); InputStream inputStream = url.openConnection().getInputStream(); resp.setContentType("application/json"); JSONSerializer jsonSerializer = new JSONSerializer(); try { jsonString = jsonSerializer.toJSON(inputStream); } catch (MarshallException e) { e.printStackTrace(); }

python通过web3py链接以太坊区块链节点的几种方式

╄→гoц情女王★ 提交于 2019-11-28 15:35:17
通信服务提供接口是web3如何与区块链交互的关键。接口接受JSON-RPC请求并返回响应。这通常通过将请求提交给基于HTTP或IPC套接字的服务器来完成。 如果你已经愉快地连接到你的以太坊节点,那么你可以跳过这部分内容。 选择如何连接到你的节点 大多数节点都有多种连接方式。如果你尚未确定要使用哪种节点,请转到 如何选择要使用的节点? 连接节点的最常用方法是: 1.IPC(使用本地文件系统:最快,最安全) 2.Websockets(远程工作,比HTTP更快) 3.HTTP(更多节点支持它) 如果你不确定如何决定,请选择以下方式: 如果你可以选择在与节点相同的计算机上运行Web3.py,请选择IPC。 如果必须连接到其他计算机上的节点,请使用Websockets。 如果你的节点不支持Websockets,请使用HTTP。 大多数节点都有“关闭”连接选项的方法。我们建议你关闭所有未使用的连接选项。这提供了更安全的设置:它减少了恶意黑客可以试图窃取你的以太币的方式。 确定连接后,可以使用通信服务提供接口Provider指定详细信息。通信服务提供接口Provider程序是为所需类型的连接配置的Web3.py类。 看这几个: IPCProvider WebsocketProvider HTTPProvider 配置通信服务提供接口程序后,如: from web3 import Web3 my

Unmarshal to a interface type

与世无争的帅哥 提交于 2019-11-28 14:49:00
I have some code I've been dumped with and am actually stumped - I've worked with RPC and the JSON side of things before but I can't seem to get it to work over RPC when it works fine locally. package main import ( "log" "net" "net/rpc" "net/rpc/jsonrpc" "reflect" ) type Foo interface { SayHello() error } type fakeFoo struct { internalValue string } func NewFakeFoo() *fakeFoo { f := &fakeFoo{} f.internalValue = "123456789012347" return f } func (m *fakeFoo) SayHello() error { return nil } type FooManager struct { availableFoos []Foo } func NewFooManager() *FooManager { p := new(FooManager) p

golang http+jsonrpc access from web page

戏子无情 提交于 2019-11-28 01:54:55
问题 I've used Go's net/rpc and net/rpc/jsonrpc packages a bit to perform connections between Go processes, however I'm wondering if there is a way to connect to an HTTP JSONRPC server using only the server tooling from the standard library (not that I have a problem writing my own, just don't want to do it if I don't have to). This is the basic server setup I have: arith := new(server.Arith) server := rpc.NewServer() server.Register(arith) server.HandleHTTP(rpc.DefaultRPCPath, rpc