远程调用以太坊客户端

远程调用以太坊的客户端是指相比全功能客户端,只提供了一部分功能的客户端。这些客户端通常不会保存完整的区块链数据,所以它们的启动速度更快,也不会消耗大量的磁盘空间。

远程调用以太坊客户端提供了如下功能:

管理钱包中的私钥和以太坊地址。

创建、签名并广播交易。

通过交易内数据载荷的方式与智能合约交互。

浏览并使用DApp。

提供外部服务的链接,例如区块浏览器。

转换以太币的单位,从外部获取兑换的汇率。

向浏览器注入一个web3实例(供页面上的JavaScript与客户端交互)。

使用其他客户端提供或注入浏览器的web3实例。

访问本地或远程以太坊节点的RPC服务。

有些远程客户端,例如智能手机上的移动钱包,只提供了最基本的钱包功能。而有些远程客户端则是功能完备的DApp浏览器。它们的共同点是,这些客户端提供的功能都是全功能客户端的子集,而且不会在本地同步以太坊区块链数据,只会连接一些在别的地方运行的全功能节点,例如,你自己部署在本地设备或者Web服务器上的全功能节点,或者是第三方部署在服务器上的全功能节点。

我们来看看市面上流行的远程客户端和它们所提供的功能。

移动(智能手机)钱包

所有的移动钱包都属于远程客户端,因为智能手机并不具备运行全功能节点所需要的资源。轻客户端正在开发中,并且也不完全具备以太坊的各种用途。在Parity中,轻客户端被认为是“实验性”的,可以使用--light命令来使用。

流行的移动钱包包括如下这些译注1(我们列出这几个钱包是因为它们都非常流行,并不意味着作者对这些钱包的安全性或功能性提供任何背书):

Jaxx(https://jaxx.io)

基于BIP39助记词种子的多币种移动钱包,支持Bitcoin、Litecoin、Ethereum、Ethereum Classic、ZCash等多种货币和大量ERC20合约代币。Jaxx有Andriod和iOS版的移动应用,并且可以通过浏览器插件的方式安装,也有支持多种操作系统的桌面版本。

Status(https://status.im)

Status是一个移动钱包和DApp浏览器,支持多种代币和流行的DApp。有Andriod和iOS版的移动应用。

TrustWallet(https://trustwalletapp.com/)

移动版的以太坊和以太坊经典钱包,支持ERC20和ERC223代币。Trust Wallet有Andriod和iOS版的移动应用。

CipherBrowser(https://www.cipherbrowser.com)

功能齐全的以太坊移动钱包和DApp浏览器,支持与以太坊应用和代币集成。

浏览器钱包

很多钱包或DApp浏览器都提供针对Chrome或Firefox浏览器的插件,这就是运行在Web浏览器中的远程客户端。

一些非常著名的例子包括MetaMask、Jaxx、MyEtherWallet / MyCrypto和Mist。

MetaMask

MetaMask(https://metamask.io/)在第2章中已经介绍过,这是一个以功能完备著称的浏览器钱包,提供RPC客户端和基本的合约浏览器功能。它支持Chrome、Firefox、Opera和Brave浏览器。

乍一看,MetaMask就是一个浏览器钱包。可实际上它会在浏览器中注入一个web3实例,作为可以连接到多个以太坊区块链(例如主网、Ropsten测试网、Kovan测试网、本地RPC节点等)的RPC客户端。注入web3实例并作为外部RPC服务的网关,使得MetaMask成为开发者的神器。它可以跟MyEtherWallet或MyCrypto合并使用,成为这些工具的web3提供方和RPC网关。

Jaxx

上一节介绍的Jaxx(https://jaxx.io)是一款移动端钱包,但也可以通过Chrome和Firefox插件使用,并且也有桌面端钱包。

MhEhterWallet(MEW)

MyEtherWallet(https://www.myetherwallet.com/)是一个基于浏览器的JavaScript轻量级客户端,提供如下功能:

运行于JavaScript的以太坊钱包。

支持流行的硬件钱包,如Trezor和Ledger。

可以与其他客户端(如MetaMask)注入浏览器中的web3实例建立连接的web3接口。

可以连接到以太坊全功能客户端的RPC客户端。

通过合约的地址和ABI,可与智能合约进行交互的一组基本的接口。

MyEtherWallet非常适合测试场景,也可以作为硬件钱包的接口。它不应该被当作“主力”钱包软件,因为它暴露于浏览器环境中的诸多威胁,而且不是一个安全的密钥保存系统。

使用MyEtherWallet或其他基于浏览器的JavaScript钱包需要非常小心,因为这些都是钓鱼攻击的目标。使用书签的方式访问这些应用,不要轻信搜索引擎或其他链接。

MyCrypto

就在本书付梓之前,MyEtherWallet项目已经分拆为两个相互竞争的实现,由两支独立的开发团队来领导。这个项目“分叉”了,就像开源开发过程中出现的分叉一样。分拆后的两个项目是MyEtherWallet(维持原品牌)和MyCrypto(https://mycrypto.com/)。分拆之时,MyCrypto提供跟MyEtherWallet同样的功能,但日后很有可能产生差别,因为两支开发团队所追求的目标不同。

Mist译注2

Mist(https://github.com/ethereum/mist)是第一个支持以太坊的浏览器,由以太坊基金会团队开发。它也包含一个基于浏览器的钱包,并首次实现了对ERC20代币标准的支持(ERC20标准的作者Fabian Vogelsteller也是Mist的主要开发者)。Mist还首次引入了对以太坊地址的大小写校验(EIP-55)。它运行一个全功能节点,支持基于Swarm的存储和ENS地址。

服务器端调用智能合约,《精通以太坊:开发智能合约和去中心化应用》 ——3.4 远程调用以太坊客户端...相关推荐

  1. 以太坊开发------使用Truffle打造去中心化的宠物商店

    pet-shop Box项目地址:http://truffleframework.com/boxes/pet-shop pet-shop Box官方教程:http://truffleframework ...

  2. 3步! 老司机教你如何在以太坊上构建基于Token去中心化投票系统!

    作者 | Doug Crescenzi 译者 | 王柯凝 出品 | CSDN.区块链大本营 如果想在以太坊平台上构建一个去中心化的自治系统,其实有很多种不同的方法可供你选择.其中,最常用的方法之一就是 ...

  3. 以太坊学习路线——(五)DApp开发:简易版去中心化微博

    这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战--以太坊关键技术与案例分析 第十一章(吴寿鹤.冯翔.刘涛.周广益   著). 项目地址,包含该项目所需大部分文件,前端因为依 ...

  4. 去中心化 去区块链_使用JavaScript和坚固性在以太坊区块链上构建去中心化应用程序dapp...

    去中心化 去区块链 In this blog, I build a decentralized application, also known as a "dapp". While ...

  5. 以太坊V神大著:去中心化社会:寻找Web3的灵魂

    通过Web 3的区块来标注各自的社会身份及生态系统可摆脱现有体制的束缚去呈现一个"去中心化"的社会. Web 3这个概念在不到10年的时间内就打造了一个震惊了世界,前所未有的极具灵 ...

  6. BANCOR学习:如何开发自己的BANCOR去中心化交易平台?

    1 摘要 < 基于以太坊的交易所BANCOR算法实现-转换算法框架> 讲解了以太坊solidity实现的BancorConverter转换主合约的逻辑和代码,但是没有涉及核心互换及计算代码 ...

  7. C语言宠物领养系统,开发一个去中心化应用Dapp-宠物领养

    1. 参考资料 http://truffleframework.com/tutorials/pet-shop 这是一个使用以太坊开发的完整的去中心化应用(Dapp),出自tuffle suite. P ...

  8. 详解区块链,智能合约,去中心化应用

    文章目录 一.区块链是什么? 二.智能合约 三.去中心化应用 一.区块链是什么? 区块链本质上是一个去中心化的分布式账本数据库,目的是解决交易信任问题.广义来看,区块链技术是利用块链式数据结构验证与存 ...

  9. 无服务器人工智能去中心化,人工智能未来的发展方向是去中心化智能?

    原标题:人工智能未来的发展方向是去中心化智能? 随着AI人工智能在应用场景的爆发以及技术成熟推动下,将进一步向去中心化侧进行迁移,从而催生去中心化智能. 人工智能未来的发展方向是怎样的? 应用场景落地 ...

  10. 精通以太坊:开发智能合约和去中心化应用

    为什么微软.纳斯达克以及其他数百个组织都在尝试以太坊? 因为以太坊打开了通向去中心化计算的大门,在这个平台上,我们可以运行去中心化的应用程序(DApp)和智能合约.以太坊是WEB 3.0 和 NFT的 ...

最新文章

  1. Day 03 为什么大学生难管理时间
  2. shell开启飞行模式_手机上的飞行模式,每天都能用得上,我是才知道,涨知识...
  3. Window核心编程
  4. Codis的dashboard异常退出后,重新启动报异常的处理方法
  5. 动态规划(最长递增子序列)---最长摆动子序列
  6. python查看文档的软件_Python __doc__属性:查看文档
  7. 轻松搞定 Nginx 配置代码的神器!
  8. mysql jdbc 表结构_JDBC操作表:JDBC修改表结构
  9. BZOJ3209(luogu 4317)花神的数论题题解
  10. MyEclipse出现红色感叹号解决办法
  11. IPP2P模块修改版,最新0.99.13
  12. 自然语言处理技术发展简史
  13. 按键精灵操作mysql数据库_按键精灵mysql数据库
  14. oracle 中 使用 begin end 批量更新,删除资料
  15. MySQLdb 安装小结
  16. linux25g网卡设定,工程师笔记|刷新Mellnaox 25G网卡固件的方法,你get了吗
  17. 快速去掉迅雷上的弹窗广告
  18. 商品浏览时的css,jquery仿京东商品放大浏览页面
  19. BZOJ_1778_[Usaco2010_Hol]_Dotp_驱逐猪猡_(期望动态规划+高斯消元+矩阵)
  20. 社群运营中品牌化和IP化运营实践

热门文章

  1. boost::inplace_merge相关的测试程序
  2. BOOST使用 proto 转换进行任意类型操作的简单示例
  3. Boost.MultiIndex 使用 Boost.Interprocess 分配器的示例
  4. boost::hana::intersection用法的测试程序
  5. BOOST_CURRENT_FUNCTION宏用法的测试程序
  6. GDCM:SCU功能的测试程序
  7. GDCM:gdcm::UUIDGenerator的测试程序
  8. GDCM:DICOM文件转储ADAC文件的测试程序
  9. boost::core模块实现分配const指针
  10. VTK:可视化之MoveActor