主页 > imtoken用什么id下载 > 快问快答,以太坊技术求职面试终极必答题

快问快答,以太坊技术求职面试终极必答题

imtoken用什么id下载 2023-12-15 05:07:04

本文约5400字+以太坊私钥是多少位,阅读(观看)需31分钟

Q:以太坊的价值代币是什么?

答案:(以太坊)

Q:Wei 和 ETH 有什么区别?

A: 魏是一种面额,比如美分兑美元或便士兑英镑。 1 ETH = 10¹⁸ 微

问:以太坊的平均出块时间是多少?

答:14秒

问:以太坊的平均区块大小是多少?

答:大约2KB。

问:以太坊支持脚本吗? 如果是这样,什么类型的脚本?

答:是的。它支持智能合约

问:你如何获得ETH?

答:有几种方法:

1.成为矿工

2.交易其他货币

3.以太网分路器如

4. 从他人那里接收以太币

问:ETH从哪里来?

A:2014年预售首发6000万。 此外,ETH 是在开采区块时创建的。

问:什么是节点?

答:节点本质上是一台连接到网络的处理交易的计算机。

问:您熟悉多少个以太坊网络?

A:网络分为三种类型——实时网络(主要)、测试网络(例如 Ropsten 和 Rinkeby)和私有网络。

问:与网络交互的方式有哪些?

A:您可以使用电子钱包或DApp

问:你能“隐藏”一笔交易吗?

答:不可以。所有人都可以看到所有交易。

Q:交易记录在哪里?

答:在公共分类账上。

问:这些网络的 ID 是什么?

答案:Live(id=1)、Ropsten(id=3)、Rinkeby(id=4)、Private(开发者分配)

问:所以我可以在 Linkoby 中挖一些 Ether,然后将它们转移到 Live 网络,对吗?

答:不,您不能在网络之间传输以太网。

问:为什么要有专用网络?

以太坊私钥未加密_以太坊私钥是多少位_以太经典是以太坊的分叉币吗

A:原因有很多,但主要是因为数据隐私、分布式数据库、访问控制和测试。

Q:如何方便的查看交易和区块的详细信息?

A:使用像 etherscan.io 或 live.ether.camp 这样的区块链浏览器

问:私有网络呢?

答:您可以使用开源浏览器客户端,例如

Q:区块链的共识是什么?

答:遵循特定协议(如以太坊)验证交易(创建区块)的过程。

Q:区块链中常用的两种共识模型是什么?

答:工作证明和利益证明。

问:用简单的方式解释工作量证明。

A:这实际上是矿工为了生成工作证明和验证交易而必须解决的难题。

问:用简单的方式解释股权证明。

A:区块的创建者是根据财富和年龄(stake)随机选择的。 它不是计算密集型的。

问:以太坊使用什么共识模型?

A:截至 2018 年初,它使用工作量证明,但将切换到股权证明。

问:如何使用以太币?

A:使用钱包或geth cli

问:用什么来签署交易?

答:用户的私钥。

Q:私钥丢失后可以找回以太坊账户吗?

答:是的,您可以使用 12 个字符的助记符。

Q:连接节点有哪些方式?

答:IPC-RPC、JSON-RPC 和 WS-RPC。

问:那么 Geth 是什么?

答:Geth 是 Ethereum cli 客户端。

问:连接到 geth 客户端的默认方式是什么?

A: IPC-RPC 默认是开启的,其他的 RPC 都是关闭的。

问:你知道哪些 geth API?

答:Admin, eth, web3, miner, network, personal, debug 和 txpool。

问:您可以使用哪些 RPC 通过网络连接到 geth 客户端?

A:可以使用JSON-RPC和WS-RPC通过网络连接geth客户端。 IPC-RPC 只能连接到同一台机器上的 geth 客户端。

问:如果你传递选项 -rpc 启用哪些 RPC?

以太经典是以太坊的分叉币吗_以太坊私钥是多少位_以太坊私钥未加密

答:JSON-RPC。

问:默认启用哪些 RPC API?

答:eth、web3 和 net。

问:如何为 JSON RPC 启用管理 API?

答案:通过使用选项 -rpcapi

问:选项-datadir 有什么作用?

A:它指定了区块链的存储位置。

问:geth 的“快速”同步是什么,为什么更快?

答:Fast Sync 不是一次处理整个区块链一个链接并重放所有发生的交易,而是下载交易收据和区块并获取整个最新状态数据库。

问:测试网有什么用?

答:它将客户端连接到 Ropsten 网络。

问:启动 geth 客户端会在屏幕上转储大量输出。 你会如何降低噪音?

A:通过将详细程度设置为较低的数字(默认为 3)

问:如何使用 IPC-RPC 将一个 geth 客户端连接到另一个客户端?

A: 首先启动一个 geth 客户端,复制它的管道位置,然后用相同的 datadir 启动另一个 geth 客户端并通过 -append 到管道位置。

问:如何将自定义 javascript 文件加载到 geth 控制台?

答:通过传递 -preload 和文件路径。

问:geth 客户帐户存储在哪里?

答:在密钥库目录中。

Q:您为了交易与账户有什么关系?

答:您必须解锁帐户 - 通过传递帐户地址或索引。 您还可以指定一个密码文件,其中所有密码都驻留在每个帐户中。

问:你提到了一些关于索引的事情。 什么决定了账户指数?

A:您添加帐户的顺序。

Q:可以用geth挖矿吗?

A:是的,通过——我的选择。

问:什么是“etherbase”?

答:这是接收挖矿奖励的账户,即索引为0的账户。

问:那么什么是智能合约?

答:这是用多种语言编写的计算机代码。 网络上存在智能合约。 他们执行规则并执行行动以太坊私钥是多少位,并且由参与者在这些合同中进行谈判。

Q:智能合约可以用什么语言编写?

答:Solidity,这是最常用的语言,Serpent和Lisp Like Language

问:智能合约用例示例?

以太坊私钥未加密_以太坊私钥是多少位_以太经典是以太坊的分叉币吗

答:在买卖双方场景中,买方在智能合约中存入资金,卖方看到存款并发货,买方收到货物并放行付款。

问:什么是 Metamask?

答:Metamask 是一个工具,可以帮助您在浏览器中轻松地与以太坊网络进行交互

问:Metamask 使用哪个节点?

答:它使用 infura.io

问:Metamask 不支持什么?

A:挖矿和合约部署。

Q: 执行合同是免费的吗?

答:不是,调用一个合约方法是一个事务。

Q:访问智能合约状态是免费的吗?

A:是的,查询状态不是交易。

问:谁来执行合同?

答:矿工。

Q:为什么在智能合约上调用方法需要花钱?

答:有些方法不会修改合约的状态,没有其他逻辑,除了返回一个值外,都是免费的。

除了使用 ETH 作为支付方式之外,调用改变状态的方法也会产生成本,因为它们需要 gas 才能执行。

问:为什么更准确地说是有气?

答:由于矿工在他们的机器上执行合约代码,他们必须通过执行调用者请求的代码来承担他们的成本。

Q:gas价格是在交易处理的时候确定的吗?

回答:是和不是。 gas价格越高,交易挖矿的可能性就越大。 尽管如此,天然气价格并不能保证更快的交易处理。

问:一笔交易中的gas用量取决于什么?

A: 这取决于存储量、指令类型和数量(可选代码)。 每个 EVM 可选代码都有固定数量的气体。

问:交易费用是如何计算的?

答:使用的gas * gas price(调用方指定)

Q:如果智能合约的执行成本低于指定的gas,用户会得到退款吗?

答:是的

问:如果智能合约的执行成本高于指定的 gas 会怎样?

A:用户没有得到退款,一旦所有gas用完并且合同没有改变,执行就会停止。

问:谁为智能合约调用付费?

答案:调用合约的用户。

Q:运行智能合约代码的节点有哪些?

答:EVM——以太坊虚拟机。 EVM 遵循作为以太坊协议一部分的 EVM 规范。 EVM 只是节点上的一个进程。

以太坊私钥是多少位_以太坊私钥未加密_以太经典是以太坊的分叉币吗

问:EVM 需要什么才能运行智能合约?

A:需要合约的字节码,通过Solidity等更高级的语言编译生成。

问:更高级别的 EVM 部件是什么?

答:内存区、栈和执行引擎。

问:什么是混音?

A:用于开发、测试和部署合约的在线工具。 它非常适合快速构建和测试轻量级合约,但不适合更复杂的合约。

Q:在混合中,你可以连接哪些节点?

答:您可以使用 Metamask 连接到公共节点,使用 Geth 中的本地节点,以及 Javascript VM 中的模拟内存节点。

问:什么是 DApp,为什么它与普通应用程序不同?

答:应用程序通常由与某些集中资源(由组织拥有)通信的客户端组成。

有一个中间层连接到集中式数据层。 如果集中数据层中的信息丢失,则无法(轻松)恢复。

DApp 代表去中心化应用程序。 DApps 通过智能合约与网络交互。 他们使用的数据驻留在合约实例中。

集中式数据比分散式数据更容易受到损害。

Q:DApp的前端是否受限于任何技术/框架?

答:不。您可以使用任何您想要的东西,例如 HTML、CSS、JS、Java、Python,等等。

问:用于连接后端(智能合约)的前端是什么?

答:Web3 API 库。

问:为了与 DApp 中的合约进行交互,你需要什么?

答:合约的ABI和字节码。

问:ABI 有什么用?

答:ABI是对DApp调用合约的合约公共接口的描述。

问:什么是字节码?

A:每个节点上的EVM都需要字节码来执行合约代码。

问:为什么要使用 BigNumber 库?

答:因为 Javascript 不能正确处理大数字。

Q:为什么在Web DApp代码的开头需要一直检查web3 provider是否设置?

答:因为 Metamask 注入它并用它自己覆盖其他 web3。

问:为什么使用版本 web3 js 1.x 而不是 0.2xx?

答:主要是因为它使用 promises 而不是异步调用的回调,这在 javascript 世界中是首选。

Q: 如何在 web3 1.x 中列出帐户?

答案:web3.eth.getAccounts。

问:.call 和 .send 有什么区别?

以太经典是以太坊的分叉币吗_以太坊私钥是多少位_以太坊私钥未加密

A:.send发送交易并支付费用,.call查询合约状态。

问:像“.send({value: 1})”这样发送以太币可以吗?

答:没有,你发1。交易总是用wei。

问:所以为了发送 1 个以太币,我必须从这个值中减去 10?

答:可以使用util方法web3.utils.toWei(1, 'ether')

Q:调用“.send()”时需要说明什么?

答:您必须指定“发件人”为发件人地址。 其他一切都是可选的。

问:web3.eth.sendTransaction() 的唯一功能是将以太币发送到特定地址,这是正确的吗?

答:不是,你也可以调用合约方法。

问:你知道以太坊的可扩展性解决方案吗?

答:第 2 层协议。 可能的解决方案是状态通道和等离子。

问:Solidity 是静态的还是动态的?

答:它是静态类型的,这意味着类型在编译时是已知的。

问:Solidity 中 Java“类”的功能等价物是什么?

A:这是合同。

Q:什么是合约实例?

答:合约实例是区块链上部署的合约。

问:给我一些 Java 和 Solidity 之间的区别。

答:Solidity支持多重继承,但不支持重载。

问:您必须首先在 Solidity 文件中指定什么?

A:Solidity编译器的版本,指定为^0.4.8。 这是必要的,因为它可以防止在与其他版本编译时引入不兼容错误。

问:合同内容是什么?

答:主要由存储的变量、函数和事件组成。

问:有哪些类型的功能?

A:有构造函数、回退函数、常量函数和修改合约状态的函数。

问:如果我将多个合约定义放入单个 Solidity 文件中,会出现什么错误?

答:将多个合约定义放入单个 Solidity 文件中是完全没问题的。

Q:这两个合约可以通过哪些方式进行交互?

A:合约可以调用、创建和继承其他合约。

问:当您尝试部署包含多个合约的文件时会发生什么?

A:编译器只会部署该文件中的最后一个合约,所有其他的将被忽略。

问:如果我有一个大项目,是否需要将所有相关合同保存到一个文件中?

A:可以使用import语句导入文件,

导入“./MyOtherContracts.sol”;

Q:只能导入本地文件吗?