精华内容
下载资源
问答
  • 合约调用方式 合约调用的三种方式 IPC方式 通常是通过控制台的方式 以太网的节点在运行之后,可以打开一个控制台 在控制台里面呢通过输入命令的方式,可以来调取一些...也就是HTTP的JSON RPC的方式 websocke...

    合约调用方式

    • 合约调用的三种方式
      • IPC方式
        • 通常是通过控制台的方式
        • 以太网的节点在运行之后,可以打开一个控制台
        • 在控制台里面呢通过输入命令的方式,可以来调取一些智能合约的方法
        • IPC的方式也成为管道通信
        • 主要是进程之间的一个调用方式
      • HTTP的方式
        • 这个是比较常见的一些方式
        • 通常是使用JSON格式来做数据的序列化与反序列化
        • 也就是HTTP的JSON RPC的方式
      • websocket的方式
        • 以太坊内部支持使用websocket协议直接对节点内部一些合约接口来进行调用
    • 在这三种方式中,我们通过客户端来调的话是后两种,HTTP的JSON RPC的方式以及websocket方式
    • 而第一种IPC的方式更多的是在本机本节点来做一些访问调试,是进程之间的一种管道通信方式

    RPC/IPC调用

    • 上面是Go语言版本的以太坊全节点程序
    • 也是以太坊官方维护的一个优先级最高的一个节点程序的版本叫geth,也就是Go语言的eth节点
    • 它运行之后,可以通过这个命令 $ geth console,带上这么一个子命令,这样来运行全节点以后,就会进入到一个控制台,就能进入到控制台
    • 在控制台里面它会打印出一些与连接相关的信息,我们可以在这里看到它有 IPC endpoint,也就是IPC的一个连接地址
    • 这里是使用MAC系统来运行的,它是在这个/Users/mac/Library/Ethereum/geth.ipc默认的位置生成一个这样一个文件geth.ipc
    • 这个IPC的连接通信方式就是通过这个共享的一个文件来进行连接的
    • 也可以来打开另外一个控制台,只要来指向这个ipc文件就可以
    • 另外就是HTTP的链接地址, 我们是在本地,所以它是127.0.0.1, 端口号是8545
    • 进入控制台以后可以通过很多的命令来访问以太的节点
    • 控制台中输入exit命令可以退出

    常用RPC调用框架

    • 对于以太节点来讲,它是支持一个节点内部的RPC服务端
    • 对于客户端来讲的,目前已经支持了很多种语言的版本,比如支持Javascript的语言版本叫web3.js,这个版本也是最常用的版本
    • 除此以外,有面向Java语言的web3j
    • 面向C#的Nethereum
    • 支持Ruby语言的ethereum-ruby
    • 以及随着发展可能也会去支持其他语言的版本
    • 当然也可以自己来封装,这可能是因为以太RPC的支持的接口都是开源的,我们也可以自己来根据需要来来做自己的封装
    LibraryLanguageProject Page
    web3.jsJavaScripthttps://github.com/ethereum/web3.js
    web3jJavahttps://github.com/web3j/web3j
    NethereumC# .NEThttps://github.com/Nethereum/Nethereum
    ethereum-rubyRubyhttps://github.com/DigixGlobal/ethereum-ruby

    关于web3对象

    • web3.js对象
      • 以太坊JavaScript API
        • 在web3这个github仓库中可以看到, https://github.com/ethereum/web3.js/tree/1.x/packages 这个目录
        • 是包含了一组已经封装好的客户端的调用库, 它是以太坊的Js版本的SDK
        • 导入后,有个类叫Web3, 在web3这个库里调用了上面的各个子库,来实现了这么一个封装,可查看官网示例
      • 普通 JSON RPC
        • 参数和返回值都是通过json来序列化和反序列化的
      • 需要配合以太坊节点使用
        • 可以是正式主网节点,也可是测试部署私有或模拟节点
    • web3对象的调用测试代码
      var Web3 = require('web3');
      if(typeof web3 !== 'undefined') {
          web3 = new Web3(web3.currentProvider);
      } else {
          // set the provider you want from Web3.providers
          web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
      }
      var Version = web3.version;
      console.log("client version: " + version);
      

    基于Nodejs示例

    var Web3 = require('web3');
    if(typeof web3 !== 'undefined') {
        web3 = new Web3(web3.currentProvider);
    } else {
        // set the provider you want from Web3.providers
        web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
    }
    
    web3.eth.getAccounts(console.log);
    

    输出10个生成的地址

    null [
      '0x437615686191efF890C7cCa136cfbf21Cb6451E6',
      '0xe4a56746DAfDf247BF125d5809B2D6168722Eb37',
      '0x23604b6563d63D5f3b4C9a09ADe681F5f2811DB6',
      '0x4900AEeA7CC7F76E473805c50E8F0e49c1F99D8E',
      '0x1A32509bC3DAA2AC5493AE212064e59ebeaED34c',
      '0x7c0c971814dBA35D5c53E5650b71E91ecb8C31fa',
      '0x2DB7594e84DC79EE782f3962C1ea9cC2912c3EF1',
      '0x9D86096d38B4460Be319dA56265499D863ccB5c4',
      '0xD03cbC188201EB3AB61aC465Dc1e3A2fa517245C',
      '0x77238F0407aF96Fd26Fe22A9996B2349F1ebb91f'
    ]
    
    展开全文
  • RPC VS IPC (relationship/difference) IPC inter-process communication as [1] said ,there are two types ipc by now: 1.LPC like RPC,but this is a 'epitome' of it,that is in general it will be us...

    一。RPC VS IPC (relationship/difference)

    IPC  inter-process communication

    as [1] said ,there are two types ipc by now:

    1.LPC  like RPC,but this is a 'epitome' of it,that is in general it will be used in local node invocation.
    2.RPC remote procedure call,commucations will spawn between certain nodes usually

     

    二。rpc principle

     

    三。HBase IPC


     



     
     

     

     

     

     

     

     

     

     

     

    Ref:

    [1] 远程过程调用

    远程过程调用协议

     

    展开全文
  • RPCIPC的区别

    千次阅读 2013-08-02 16:32:05
    RPC:  http://en.wikipedia.org/wiki/Remote_procedure_call  In computer science, a remote procedure call (RPC) is an inter-process communication that allows a computer program to cause a ...

     

    RPC:

     http://en.wikipedia.org/wiki/Remote_procedure_call

     In computer science, remote procedure call (RPC) is an inter-process communication that allows a computer program to cause a subroutineor procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. When the software in question uses object-oriented principles, RPC is called remote invocation or remote method invocation.

     

     

    IPC: http://en.wikipedia.org/wiki/Inter-process_communication

    In computing, inter-process communication (IPC) is a set of methods for the exchange of data among multiple threads in one or moreprocesses. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passingsynchronizationshared memory, and remote procedure calls (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.

    There are several reasons for providing an environment that allows process cooperation:

    IPC may also be referred to as inter-thread communication and inter-application communication.

     

    可见,RPC是IPC的一种。


    RMI和RPC之间最主要的区别在于方法是如何别调用的。在RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为“classname”的类中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。

    展开全文
  • IPCRPC的区别

    千次阅读 2018-09-20 16:36:39
    IPC:(Inter Process Communication )跨进程通信 这个概念泛指进程之间任何形式的通信行为,是个可以拿来到处套的术语。它不仅包括各种形式的消息传递,还可以指共享资源,以及同步对象[mutex 或者其他类似的东西...

    IPC:(Inter Process Communication )跨进程通信

    这个概念泛指进程之间任何形式的通信行为,是个可以拿来到处套的术语。它不仅包括各种形式的消息传递,还可以指共享资源,以及同步对象[mutex 或者其他类似的东西,即确保安全的并发访问共享资源(也就是防止两个或两个以上的对象同事对同一个数据成员进行修改,从而导致数据被破坏,或者竞争条件下同事读/写数据而导致错误的情况发生)]的东西。

    RPC:(Reomote Procedure Call) 远程过程调用

    特指一种隐藏了过程调用时实际通信细节的IPC方法。客户端将调用一个本地方法,而这个本地方法则是负责透明的与远程服务端进行过程间通信。这个本地方法会讲相关参数顺序打包到一个消息中,然后把这个消息发送给服务端提供的方法,服务端的方法会从消息中解出序列化发出来的参数,然后执行,最后仍以同样的方式将方法的返回值发送给客户端。

    展开全文
  • 进程间通信(IPC)分为 (1)本地过程调用(LPC)LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。 (2)远程过程调用(RPC)RPC类似于LPC,只是在网上工作 ...
  • Hadoop的RPC主要是通过Java的动态代理(Dynamic Proxy)与反射(Reflect)实现,源代码在org.apache.hadoop.ipc下,有以下几个主要类: Client:RPC服务的客户端 RPC:实现了一个简单的RPC模型 Server:服务端的...
  • RPC框架 远程过程调用 1.服务端启动服务, 2.客户端获取服务端接口协议的代理对象 3.客户端通过代理对象的接口协议,调用服务端提供的功能(直接通过socket协议通信) hdfs接口协议对象是 org.apache.hadoop.hdfs....
  • IPC\RPC\LPC区别与联系

    千次阅读 2019-01-09 13:53:08
    进程间通信(IPC,Inter-Process Communication):指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使...
  • IPC 中 LPC、RPC 的区别和联系

    千次阅读 2018-04-11 11:16:19
    见:http://www.cnblogs.com/gsk99/archive/2010/12/13/1904541.htmlhttps://blog.csdn.net/gerryzhu/article/details/5414696进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或...
  • sentiment_classify = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?access_token=%s' % access_token data = {'text': '百度公司真的厉害啊'} print post(sentiment_classify, data) # 9.文章标签...
  • IPCRPC的区别和联系

    万次阅读 2016-09-05 11:01:54
    进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。
  • Android进程通讯方式有很多,如Socket、ContentProvider、共享文件(这种方式的缺点是不支持并发写,...可以发现Android中IPC方式的使用不是有诸多限制,就是使用起来比较麻烦,所以搭建一套简单易用的IPC框架是很...
  • RPCIPC有区别吗?

    2019-02-21 17:44:41
    RPC: Remote procedure call (RPC) is an Inter-process communication technology that allows a computer program to cause a subroutine or procedure to execute in another address space (commonly on ...
  • 使用TypeScript通过IPC或WebSockets传输gRPC消息 该存储库展示了如何在客户端服务器JavaScript基础结构中实现方法,特别是在Web应用程序场景中使用WebSocket或在电子应用程序中使用Electronic IPC。 传输抽象的...
  • IPC LPC RPC

    2020-05-25 22:51:39
    IPC (进程间通信) 泛指一切两个或以上线程通过共享内存、消息队列、通道和信号量进行的通信机制。 LPC(本地进程通信) 指多个线程在单独一台计算机中,通过共享内存、消息队列、通道和信号量进行的通信机制。 RPC...
  • Android IPC/RPC Binder arch

    2018-08-30 17:02:17
  • 一、Binder 系统两个核心、 二、IPC 进程间通信、 三、RPC 远程过程调用
  • ipc-rpc RPC over process.send ,包括对发送句柄的支持。 管道的两端既可以是客户端,也可以是服务器。 用法 设置一个基本服务器,以“OK!”响应状态请求: functions = status : ( msg , handle , cb ) -> ...
  • hadoop IPC/RPC 机制

    千次阅读 2011-11-16 22:21:17
    在分布式应用程序中使用Hadoop IPC/RPC 原文地址:http://www.supermind.org/blog/520/using-hadoop-ipcrpc-for-distributed-applications 本文来自于:http://gpcuster.cnblogs.com 译文: 关于Hadoop IPC ...
  • Messenger 是一种轻量级的 IPC 方案,它的底层实现是 AIDL。  使用 Messenger 进行客户端与服务端之间的双向通信还是蛮容易的,相比 AIDL, 这个方案相当的便捷。因为使用的是串行方式处理信息,所以 Messenger ...
  • IPC RPC

    2019-12-06 16:58:11
    跨进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能...
  • IPCRPC

    2020-06-23 22:14:00
    IPC是进程间通信。 RPC是远程调用,远程调用需要借助于进程间通信。 远程调用的概念相对于本地调用。 本地调用时程序会被装载到内存中,然后通过内存寻址进行调用。 但是远程函数不在内存中该怎么调用呢? 这就需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,639
精华内容 9,455
关键字:

RPC/IPC