受到疫情影响,很多人仍然在家办公。这对于大家来说可能是新体验,而对于 Parity 员工来说,远程办公却是一个 “默认设定”。在这篇专访中,除了分享开发经验以外,开发者 Tomasz Drwi?ga 也分享了他远程办公的高效 “秘诀”。
Parity 老炮儿、核心开发者 Tomasz Drwi?ga 在 2016 年 1 月加入了 Parity ,他是 Parity 第 7 号员工(他指出是 007 号),见证了公司从 4 个在 Airbnb 写代码的开发者,迅速成长为今天拥有 78 人和多间办公室的公司。
Tomasz 最初致力于 EVM 实现,后来专注于 JSON-RPC 接口,用他的话说,就是 “将核心客户端、dapp 和外部开发人员粘合在一起的部分”。他还负责以太坊(Parity Ethereum)的交易池及其大部分出块代码。他目前正在指导新的以太坊(Parity Ethereum)贡献者和编写 Substrate,包括实现 RPC、交易池和链下工作机(off-chain workers)。
Tomasz 一直以来都是一个非常善良和乐于助人的人,因此我很高兴与他聊天,并了解他的更多故事。
你是怎么加入 Parity 的?
我在弗罗茨瓦夫(Wroc?aw)的联合办公空间里遇到了 Marek Kotewicz,那时一个共同朋友正在向我们俩介绍比特币。Marek 邀请我加入最初的开发团队,团队里只有 Gav、Arkadiy 和他。对我来说,这是改变生活的绝佳时机,用 Rust 来编写区块链听起来是一个了不起的机会。我们没有办公室,所以工作是在随便一家咖啡馆或静修期间进行的,这对我来说也是一种全新的体验。那是一段好玩的时光。
数据:自2018年,新加坡与数字货币有关的犯罪报告激增2500%:自2018年以来,新加坡与数字货币犯罪有关的报告数量激增了2500%以上。此外,新加坡还指出,在过去三年中,此类犯罪事件造成的损失超过2900万美元。(Coingeek)[2021/6/2 23:04:08]
公司是如何发展的?
它成长了,成长了很多,而且成长得非常快。最初我们只有由 4 个开发者组成的团队,在随便找的 Airbnb 里开发以太坊客户端。而我们现在是一家拥有 75 名员工的公司,有很棒的办公室,同时做着着许多个区块链项目。然而(坦率地讲,这让我挺惊讶的)我们的文化至今还很相似 —— 我们仍然是一群极客,可以自由地以不受管理的方式,从事任何听起来有趣的事情。被公司吸引的人员的素质和专业水平,也是我从未见过的。
你将 Clint Eastwood 的照片用作头像。有什么故事吗?
好吧,我喜欢镖客三部曲和这位演员。而且这个角色也符合我的生活理念。我没那么多话,更喜欢采取行动,而且我不是那种很自负的人。我完全能接受当一个 “籍籍无名的人” ,但我仍在努力当个 “好人”。:)
你之前是 JavaScript 的背景,来 Parity 后才学习了 Rust,对吧?这个过渡感觉如何?
很难。即使我有其他语言和范例的经验(我之前学过 C ++ 、Prolog 和 Erlang,后来作为 Java 开发者开始了职业生涯),但学习 Rust 还是很困难的。最初,我的任务并不需要那么多 Rust 特有的功能,所以我感觉自己效率很高。但是,当我开始处理涉及更多线程的更多技术问题时,我陷入了危机时刻。我记得花了三周的时间为 Parity Ethereum 的第一个多线程版本的交易池工作,让 Rust 编译器教我编写并行程序代码。虽然当时我觉得自己效率低下,感到非常沮丧,但从长远的角度来看,这确实是一个很好的体验。
俄罗斯公职人员将有义务报告加密货币持有量:金色财经报道,俄罗斯检察长办公室表示,俄罗斯公职人员将有义务报告他们拥有多少加密货币。总检察长Igor Krasnov称,加密资产将很快拥有与其他资产类别(如房地产、车辆和证券)相同的“产权”,因此必须予以透露。他补充说,所有公务员都将有义务报告其截至2021年的加密资产持有量,其中加密货币被视为“与其他资产平等”。据悉,该法案于今年早些时候获得批准,并将于2021年1月1日颁布。根据俄罗斯法律,掩盖或提供有关其收入和资产的不完整或误导性信息的公职人员将由司法机构根据反腐败条例起诉。[2020/10/22]
你讨论了以太坊的零知识新交易队列。能不能简要解释一下它是如何工作的?
当然可以。交易队列(或池)是我在 Parity Ethereum 代码库中的第一个任务,我感到非常惊讶,它是如此复杂,需要处理很多模棱两可的情况。
我们首先定义问题:网络中漂浮着大量交易云,而区块容量有限。任务是确定来自云的哪些交易可以放到区块中,又该以何种顺序排列。这听起来很简单,但我们还有其他目标和约束条件:我们希望最大化区块中的交易总费用,同时保留来自单个发件人(nonce)的交易顺序并避免 DoS 向量。此类问题的专业术语是 “多重约束背包问题”,众所周知,是很难找到最佳解决方案。幸运的是,我们可以使用一些简化的启发法,但是仍然有很多注意事项。
目前它在 Parity Ethereum 中是如何工作的:
我们维护每个发送者的预验证交易的现时顺序列表(因此我们知道每个发件人的优缺点);
我们维护每个发送者的最佳交易的 gas 价格排序列表;
每次我们要计算一个块中的交易顺序时,我们都通过从列表 2 中选取最佳交易,并将来自同一发送者的次佳交易添加到列表中来得出它。
这种动态构造使我们在插入时间(几乎恒定)与待定集合构造(发送者数量的对数)之间进行了很好的权衡。
鉴于以太坊网络的发展,以及我们过去观察到的大量交易,交易池的这些新属性变得尤为重要。
你希望更多人了解 Parity Ethereum 的哪方面?
我希望大家知道可以使用哪种日志记录来报告问题 :)。在大多数情况下,重现问题确实非常困难且耗时,并且带有(至少是部分)日志的错误报告对于识别问题有极大的帮助。(日志记录准则发布在新的模板 issue 中。)
在 Parity 远程工作是什么感觉?
远程工作可能会很困难,尤其是如果团队中的大多数人都集中在一个地方,而你被视为二等公民时。另外,如果沟通不畅,远程工作人员可能会一直感觉不到成就感,如果长期坚持下去,可能会感到沮丧和失去动力。
不过在 Parity 不是这种情况。由于我们有很多远程工作人员,因此远程工作基本上是默认设定。甚至柏林的人也可以在家中或在咖啡馆工作,而不愿意去办公室。无论我身在何处,我都可以找到工作所需的一切:Rust 编译器、GitHub 和 Riot。
远程办公环境是什么样的?当你不在办公室时,如何进行沟通呢?
Parity 的所有沟通都在 repositories (issue 和 pull requests)上或 Riot(公开和内部频道)上进行。对于更长的讨论,我们更喜欢内部讨论论坛,有时我们也打短电话来快速讨论一些主题。我是在弗罗茨瓦夫(Wroc?aw)工作的,它离柏林非常近,所以我也试着每月至少去一次办公室并待上几天。每当我在柏林办公室时,我总是有这样的感觉:“噢,现在我要赶上大家,他们在办公室时,肯定面对面讲了很多东西”。但事实总是证明,我在那儿了解到的东西,无非就是我已经知道的。实际上,有时候我比其他人知道更多,因为我习惯于仔细阅读聊天记录。不过,可以亲自和同事一起出去玩还是很高兴的。:)
你还想和大家分享什么?
如果你是开发者,请学习 Rust,这会让你成为能更好地使用其他任意一种语言的程序员。如果你不是开发者,那么 Rust 可能是一个艰难而良好的开端。:)
原文:https://www.parity.io/people-of-parity-tomasz-drwiega/
翻译:PolkaWorld 社区
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。