United KingdomToptal Member Since February 22, 2019
他是一名软件工程师和企业家,拥有伦敦帝国理工学院理论物理学硕士学位. 他擅长用网络构建全栈系统, desktop, and mobile apps, microservices, 以及外部集成. fracimazrique与他人共同创立了一家国际营销机构和三家开发工具的初创公司, cybersecurity, and AI. fr rique定期发布TypeScript包,并为其他开源项目做出贡献.
At Toptal, 我们对以太坊开发人员进行了彻底的筛选,以确保我们只为您匹配最优秀的人才. Of the more than 200,每年有5000人申请加入Toptal网络, 只有不到3%的人能达标. 你将与工程专家(而不是一般的招聘人员或人力资源代表)一起了解你的目标, technical needs, and team dynamics. 最终的结果是:经过专家审查的人才从我们的网络,定制匹配,以满足您的业务需求.
首先,让我们了解一些基本的以太坊背景. After that, 我们将进入以太坊相关职位面试中可能出现的问题和答案.
Who’s Driving Ethereum?
2013年Vitalik Buterin发明了以太坊,2014年它获得了ICO的支持,2015年它上线了. 这项技术还很年轻,但以太坊的发展是一个令人兴奋的前沿. At the time of writing, 总的来说,区块链工程师并不多, 以太坊开发人员就更少了.
以太坊专家之间的互动推动了这项技术的发展.
在以太坊历史的早期,在某些情况下期望它似乎是不合理的 be 能够雇佣真正的专家:那些组织过聚会的人, 作为顾问帮助创业公司, 成功完成ICO, etc.
That being the case, 重要的是,当代以太坊开发人员致力于成为真正的专家. 最好以有意义的方式将他们与当前的以太坊专家联系起来. 了解当地区块链社区的工程师, 或者参加聚会或会议, 或者在在线以太坊社区有良好声誉的人——他们可能对这个主题有合适的热情,并且有足够的外部支持来有效地为你的项目开发以太坊区块链技术.
事实证明,区块链技术中的工作量证明算法存在一个重大缺陷:它们非常昂贵,对环境有很强的影响. As of February 2018, 以太坊功耗 was closing in on 多米尼加共和国 超过了其他约150个国家. 事实上,自2017年6月以来,它已经增长了约200%,达到近15太瓦时.
尽管这个数字看起来很大,但还不到比特币使用量的一半. To be precise, 以太坊使用了比特币目前年能耗的34%, 目前是51太瓦时. Those numbers are already comparable; meanwhile, side-effects like this are already a reality:
蒙古一家煤炭驱动的比特币矿场的现有数据显示,该矿场要为8亿美元的比特币负责,000 to 13,每枚比特币可排放1万公斤二氧化碳, and 24,000 to 40,000 kg per hour. 推特用户Matthias Bartosik指出了类似的估计:欧洲汽车的平均排放量为0.每行驶一公里产生1191公斤二氧化碳. For every hour, 比特币矿场排放的二氧化碳至少相当于203吨以上,汽车行驶公里.
Lester Coleman, 比特币价格飙升导致电力消耗飙升:博客质疑环境影响, November 2017
address public owner;
mapping(bytes32 => address) public vehicles;
在这里,我们定义了公共变量,或者契约的属性. The first one, called owner,表示创建任何给定实例的以太坊地址 VehicleOwner contract. The second one, called vehicles,将用于存储该公司拥有的车辆列表 owner,将合约地址分配给所提供的车辆识别号码.
函数VehicleOwner() public {
owner = msg.sender;
}
注意这个函数的特殊命名. 它是契约构造函数, 名字和合同一模一样, 用骆驼大写写, or Pascal case—i.e.在美国,每个复合词都以大写字母开头. 这个构造函数所做的唯一事情就是分配调用函数i的地址.e. 创建合同的人——作为合同的所有者.
Since by convention, 我们倾向于用以太币进行交易, 这种情况相当于以太有18个小数点. That magic number, 18, 可能会变成以太坊代币的十进制标准. 大多数客户机寻找公共变量 decimals 在以太中表示持有的整数值. 虽然不是强制性的,但ERC20令牌经常实现它:
关于雇用以太坊开发人员的简明指南已经接近尾声了. You, 招聘人员——以及合适的候选人——应该清楚地了解以太坊区块链的机制. Most importantly, 您应该意识到为传统软件设计软件之间的区别, 中心化系统vs去中心化区块链.
想想比特币和以太坊是如何设计成允许直接交易的, 网络参与者之间的无信任交易. 由于利用工作量证明, among other algorithms, for reaching consensus, 这些平台努力避免依赖可信的第三方.
这对打算在区块链上发布的应用程序的设计有很大的影响. Thinking of 以太坊应用架构, 请记住,区块链接管了传统的许多责任, centralized servers, 但它也带来了变化. 如果您计划通过区块链提供的服务或产品以某种方式与您的公司绑定, 然后你仍然在制作集中的应用程序.
这带来了两个挑战. 第一个是制定一个计划,允许用户从您提供的智能合约中受益, 而不必提及贵公司. 智能合约应该允许双方进行某种形式的交易, 涉及cryptocurrency, stocks, bartering, etc. 第二个挑战是找到业务“in”i.e. 如何用你的产品赚钱!
这方面的一个成功案例是 EtherDelta,一个真正去中心化的交易平台. 他们的服务与典型的交易所形成鲜明对比, 哪些处理加密货币,但实际上是中心化的平台,交易发生在链下. 在EtherDelta上下单不需要以太坊交易, but trading does, 这样它实际上利用了区块链,使用起来更安全.
它也是透明的 新类型的硬币通过GitHub拉请求添加. EtherDelta charges a 0.3%提款费(提款). 因此,公共的、开放的、去中心化的应用程序绝对有可能盈利.
另一方面,对于一些企业来说,把所有东西都放在区块链上是没有意义的. In particular, 在许多情况下,敏感数据应该安全存储并保密, 这甚至是一项法律要求.
同样重要的是要注意,以太坊上的每笔交易都相当昂贵和缓慢. 即使交易得到验证,最好还是等待几个区块被挖掘出来. 原因是最近的区块可能会被识别为不属于规范区块链的一部分, 然后,已经挖掘的交易被还原. That process is called chain reorganization, and it happens quite often.
此外,区块链上的代码不能单独与外部服务通信. For those reasons, 对大多数企业来说,将所有业务操作都放在区块链上可能太难了. 虽然智能合约的独立性和开放性至关重要, 将您的SaaS和以太坊ĐApps作为相关合同的最佳接口并没有错! 这似乎没有问题,只要可以构建其他接口而不必依赖于您的业务.
聪明地对待智能合约开发人员
智能合约,包括作为示例的智能合约,在区块链上是公开的. 商业动机驱动新软件的创建, 但合适的以太坊工程师将设计智能合约,使其与公众保持一致, 区块链的透明性, 以免他们无法将集中式逻辑转换为区块链. There are also the 智能合约的局限性 被考虑在内. In some cases, even, 完全采用区块链还为时过早,因为更多的变化正在进行中.
In the end, 你会想要雇佣一个以太坊区块链开发人员,他对商业的头脑和对编程的头脑一样好. 以太坊应用程序开发的世界是一个疯狂的世界,所以更有理由雇佣你能找到的最可靠和最专业的开发人员.