当使用像Etherscan这样的以太网区块链探测器来检查地址时,你可能会遇到某些具备交易,内部交易和代币交易的地址。要理解它们之间的区别,咱们首先要了解以太坊上的外部和内部地址的概念。php
以太坊中有两种类型的地址(账户):外部和内部。前端
当用户建立一个地址时,它被称为外部地址,由于它用于从外部访问区块链,来自“用户世界”。java
当你将智能合约部署到以太坊区块链时,会生成一个内部地址,该地址用做指向正在运行的区块链程序(已部署的智能合约)的指针。你能够从外部将其做为调用函数的目标,或者你能够从内部对其进行定位,以便另外一个已部署的合同能够调用已部署的合同上的函数。node
值得注意的是,以太坊区块链上的全部交易都是经过外部帐户设置的。即便一个智能合约应该调用另外一个,而另外一个又转而调用其余的,第一笔交易必须由外部帐户完成。尽管正在开发解决方案,但目前没法从外部自动调用交易。python
外部和内部账户之间的主要区别以下:android
外部地址具备私钥,用户能够访问。内部地址不能直接做为钱包访问,只能经过调用其功能来使用。程序员
这将咱们带回到交易类型。咱们来看看这个地址吧。web
地址在交易Transactions选项卡中有几个条目:一些是传出的,一些是传入的。这些交易是外部交易所有来自外部帐户。所以,根据屏幕截图,咱们能够看到这个地址7天前从这个地址收到5以太,12天前从Binance钱包收到0.2以太。可是若是咱们查看最新的发件人,咱们会看到一些更有趣的条目:mongodb
这个地址一直在向我的发送以太,但它也作了其余事情:它促成了EOS众筹并撤回了EOS代币。大多数这些交易发送0以太;他们只是调用函数。例如,这笔交易显示,差很少半年前,咱们的主人公在EOS Crowdsale合约中称之为索赔功能,这致使了众人向该人发送312代币做为回报。编程
这笔交易的细节并不重要。咱们只是看它来正肯定义Transactions选项卡:
交易Transactions选项卡列出了由外部账户发起的全部交易,不管是谁发起了它们,不管是接收者或发送者。
如今让咱们看看第一个地址的第二个标签:内部交易。
注意:并不是全部地址都有此选项卡。它仅在内部交易实际发生在帐户上时才会出现。
让咱们看看其中一个,例如这一个。
这是对ENS(以太坊名称服务)域名服务的出价,它容许实体注册像bitfalls.eth
这样的eth域,这样人们就能够直接向它发送以太,而不是像0xbE2B28F870336B4eAA0aCc73cE02757fcC428dC9
那样冗长而神秘的地址。该交易将本身描述为发送给ENS-Registrar合约,而后合约将0.94以太发送到最初造成拍卖的地址,而后合约称为终结函数。
可是,若是仍然须要经过外部账户的交易启动内部交易,这又如何呢?最初的发起TX是外部的,是的,可是这个特定的交易只是在区块链内发生的一系列交易中的一个,从合约到合约。因为合约被另外一个合约(ENS拍卖过程)触发而自动发回以太,它被记录为内部交易,由于以太的发送是智能合约中内置的逻辑的结果,而且不是由来自外面的人。所以:
内部交易Internal Transactions选项卡列出了因为一个或多个先前交易而由内部账户启动的全部交易。
最后,还有Token Transfers选项卡。
有些不言自明的代币交易是仅仅执行如下操做的交易:发送代币。有问题的代币必须是ERC20代币(即具备标准化功能),而后若是交易的惟一目的是发送代币,它将在此处列出。在这里,咱们能够看到垃圾邮件代币的示例:8天前将1500个BOBx代币发送到该地址。代币垃圾邮件(空投)是推广ICO项目的经常使用方法。Airdrops让收件人不知道代币来自哪里。当他们谷歌为该项目,其谷歌SERP评级增加和反向连接建立。考虑到构建本身的代币几乎是免费且很是简单的,这种特殊的营销成本几乎为零。10美圆更精确,若是咱们更仔细地看待交易,这就变得很明显了......
咱们能够看到它确实是一个空投,其中有许多地址做为接收者。
你还会注意到代币是从“0x00000”发送的......那么这意味着什么?如何将null地址做为起源?这只是意味着这一个垃圾邮件交易也是代币的来源。该代币建立并一举分发给100人,仅售10美圆。你能够经过查看输入数据来查看此特技的一部分地址。
你如今知道如何解释Ethersum上Etherscan中的交易类型,而且能够合理程度地肯定转移给谁,什么时候以及从何处转移,以及肯定触发它的内容。这将在你将来对以太坊区块链的探索中派上用场。
======================================================================
分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:
- java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如建立地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
- php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如建立地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
- c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如建立地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
- java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
- python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
- php以太坊,主要是介绍使用php进行智能合约开发交互,进行帐号建立、交易、转帐、代币开发以及过滤器和交易等内容。
- 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
- ERC721以太坊通证明战,课程以一个数字艺术品创做与分享DApp的实战开发为主线,深刻讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
- C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括帐户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
- EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、帐户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
- 深刻浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深刻学习EOS区块链应用开发,课程内容即涵盖帐户、计算资源、智能合约、动做与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深刻浅出,很是适合前端工程师深刻学习EOS区块链应用开发。
- Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通讯接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操做实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
- Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通讯接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操做实践,是java工程师学习Fabric区块链开发的最佳选择。
- tendermint区块链开发详解,本课程适合但愿使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。
汇智网原创翻译,转载请标明出处。这里是什么是以太坊内部交易和以太币交易