主页 > imtoken客服在哪 > 以太坊区块链开发技术岗位常见问题,附参考答案。
以太坊区块链开发技术岗位常见问题,附参考答案。
前言
前段时间,该公司一直在开发以太坊,目前正在开发 EOS。总结了以太坊前期发展的相关知识,总结了各方对以太坊的面试题。在这里整理一下,以备不时之需。需要的朋友请自行领取。,哈哈。
智能合约
基础概念、Solidity开发语言、去中和应用DApp、web3.js开发
头发库等
以太坊
Q:以太坊的价值代币叫什么?
答案:以太(ETH:以太)
问:Wei 和 Ether 有什么区别?
A: Wei 是美分兑美元或便士兑英镑的一种面额。1 ETH
=10^18 伟
Q:以太坊的平均出块时间是多少?
答:约14秒
问:以太坊的平均区块大小是多少?
A:2KB左右,实际值视具体情况而定。
问:以太坊是否支持脚本?如果是,支持什么类型的脚
书?
回答:是的。它支持智能合约
问题:你如何获得以太?
答:有很多方法:
1.成为一名矿工
2.其他货币兑换
3.使用以太龙头,例如
4.接受别人的礼物
问:以太从何而来?
A:2014年预售中首次创造了6000万。此外,在挖掘新区块时
也产生了以太。
问:什么是节点?
A: 节点本质上是一台连接到网络的处理交易的计算机
简单的。
Q:你熟悉多少个以太坊网络?
A:网络分为三种类型——现网(主网)、测试网(例如
Ropsten 和 Rinkeby)和专用网络。
问:与以太坊网络交互的方式有哪些?
A:您可以使用电子钱包或DApp
问:你可以“隐藏”以太坊交易吗?
答:不可以。所有交易对每个人都是可见的。
问:交易记录在哪里?
答:在公共分类账上。
问:这些网络的 ID 是什么?
答案:Live(id=1), Ropsten(id=3), Rinkeby(id=
4),私有(由开发人员分配)
问:我可以在 Rinkeby 测试网络中挖一些以太币并转移到 Live
网络?
答:不可以。以太不能在不同的以太坊网络之间传递。
问:为什么需要专用网络?
A:有很多原因,但主要是数据隐私、分布式数据库、权限
控制和测试。
问:简单解释一下工作量证明。
A:实际上是矿工出价证明他们的工作并验证交易
解决计算密集型问题。
问:用简单的方式解释权益证明。
A:区块的创建者是根据节点持有的财富和权益随机选择的。
它不是计算密集型的。
Q:以太坊使用什么共识模型?
A:截至 2018 年初,它使用工作量证明,但将来会切换到质押
证明。
问:什么是用来签署交易的?
A:用户的私钥。
问:我的私钥丢失后可以恢复我的以太坊账户吗?
A:是的,可以使用助记词。
以太坊节点软件(Geth)
问:连接以太坊节点的方式有哪些?
答:IPC-RPC、JSON-RPC 和 WS-RPC。
问:Geth 是什么?
A:Geth 是以太坊的客户。
问:连接到 geth 客户端的默认方式是什么?
A:IPC-RPC 默认开启,其他 RPC 关闭。
问:你知道关于 geth 的哪些 API?
答案:管理员、eth、web3、miner、net、personal、shh、
调试和 txpool。
问:选项 -datadir 有什么作用?
A:它指定了区块链的存储位置。
问:geth 的“快速”同步是什么?为什么它更快?
A:快速同步将下载交易收据和区块并完全提取最新的
而不是重新执行所有已发生的事务。
问:选项 --testnet 有什么作用?
答:它将客户端连接到 Ropsten 网络。
Q:启动geth客户端会在屏幕上输出很多文字,如何减少输出
出信息?
A: --verbosity 可以设置为较小的数字(默认为 3)
问:如何将自定义 javascript 文件加载到 geth 控制台?
A: 使用 --preload 选项传入 js 文件的路径。
问:geth 客户端的帐户存储在哪里?
答:在密钥库目录中。
问:账户需要做什么才能进行交易?
A:账号必须先解锁——可以传入账号地址或者账号序列号来解锁账号
锁。您还可以使用 --password 选项传入密码文件,其中包含
包含每个帐户的密码。
问:你提到了一些关于帐户序列号的事情。哪些因素决定账户
序列号?
- 答:添加帐户的顺序。
智能合约和 Solidity
问:什么是智能合约?
答:这是用多种语言编写的计算机代码。以太坊上存在智能合约
在 Square 网络上,他们根据预先确定的规则执行动作,这些规则由参与者决定
在这些合同中约定。
Q:智能合约可以用哪些语言编写?
A:Solidity 是最常用的语言,Serpent 和 LLL 也有。
问:什么是 Metamask?
A:Metamask 是一个帮助用户在浏览器中与以太坊网络进行交互的工具。
互动工具
问:Metamask 使用哪个以太坊节点?
A: 它使用 infura.io
问:访问智能合约的状态是免费的吗?
A:是的,查询状态不是交易。
问:为什么需要煤气?
A:由于矿工在他们的机器上执行合约代码,他们需要 gas 来覆盖
涵盖执行合约代码的成本。
问:gas 的价格是否决定何时处理交易?
答:是的,不是的。天然气价格越高,交易成功的可能性就越大。
尽管如此,gas 价格并不能保证更快的交易处理。
问:交易中的gas使用量取决于什么?
A:这取决于合约使用的存储量、指令(操作码)的类型和数量
数量。每个 EVM 操作码对应于固定数量的气体。
问:交易费用如何计算?
答:gas消耗*gas price(调用者指定的gas价格)
Q:如果智能合约的执行成本低于监管机构规定的gas消耗量以太区块链的关系,用户会
你收到退款了吗?
答案:是的
问:如果智能合约的执行成本高于指定的gas使用量会怎样
健康)状况?
A:用户不会得到退款,一旦所有的gas用完,就会停止执行,合约也不会改变。
问:粗略地说,EVM 的组成部分有哪些?
答:内存区域、堆栈和执行引擎。
问:什么是混音?
A:用于开发、测试和部署合约的在线工具。适合快速构建和测试
轻量级合约,但不适合更复杂的合约。
Q:在 Remix 中,可以连接哪些节点?
A:可以使用 Metamask 连接公共节点,也可以链接使用
由 Geth 构建的本地节点,或在 Javascript VM 中模拟的内存节点
观点。
问:什么是 DApp,它与 App 有何不同?有什么不同?
答:App通常包含一个客户端,这个客户端会和一些中心化的资源进行通信
来源(由组织拥有)进行通信,通常是通过中间层的客户
连接集中数据层,如果集中数据层的信息丢失,不要
可以很容易地恢复。DApp 代表去中心化应用程序。DApps 通行证
智能合约与区块链网络交互。DApp 使用的数据存在于合约中
在这种情况下。集中式数据比分散式数据更容易受到破坏。
DApps 和 web3
问:DApp 的前端是否仅限于某些技术或框架?
答:不受限制。可以使用任何技术开发 DApp 的前端,例如
HTML、CSS、JS、Java、Python...
Q:前端用什么库连接后端(智能合约)?
答:Web3.js 库。
Q:DApp前端需要什么才能与指定的智能合约交互
相互的?
A:合约的ABI和字节码。
问:ABI 是做什么的?
答:ABI是合约的公共接口描述对象以太区块链的关系,DApps用来调用合约
界面。
问:字节码有什么作用?
A:节点上的EVM只能执行合约的字节码。
问:为什么使用 BigNumber 库?
A:因为 Javascript 不能正确处理大数。
问:.call 和 .send 有什么区别?
A:.send 发送交易并支付费用,而 .call 查询合约状态。
问:像这样发送 1 个以太币是否正确:
.send({value:1})?
A: 不,这是发送 1 wei。交易总是在wei。
问:所以为了发送 1 个以太币,我必须将这个值乘以 10^18?
答:可以用
web3.utils.toWei(1, 'ether')。