远程Golang区块链基础设施工程师招聘
远程Golang区块链基础设施工程师招聘 职位: 区块链基础设施工程师 (zkEVM) 工作地点: 远程 薪资: 10万 - 15万美元
正在寻找区块链(Golang)相关职位吗?WorksHub 可以为您提供帮助!我们正在为 Scroll 进行招聘,这是一个令人兴奋的以太坊扩容解决方案。该公司估值达 18 亿美元,并且是 Vitalik Buterin 最青睐的第二层扩容方案。如果您拥有 Geth 相关经验,这可能是您职业发展的绝佳机会。该公司提供的薪资范围为 10 万至 15 万美元,面试流程仅有三轮,并且他们正在进行的 zkEVM 项目引起了巨大轰动。请通过 marklee@functionalworks.com 与我联系,了解更多信息并安排时间与首席技术官进行交流。
职位描述可以在此处找到 - 远程区块链基础设施工程师 - Scroll
更多关于远程Golang区块链基础设施工程师招聘的实战教程也可以访问 https://www.itying.com/category-94-b0.html
嘿,加里,
我刚给你发了封邮件 🙂
干杯! 马克
更多关于远程Golang区块链基础设施工程师招聘的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你好,
我很感兴趣,并且已经通过电子邮件联系了。
请审阅并就此事分享您的反馈 🙂
此致 Maria
你好,玛丽亚!
感谢你的回复,我期待着与你交流!恐怕我还没有收到你的邮件,你能重新发送一下吗?
祝一切顺利, 马克
这是一个非常吸引人的机会,尤其对于在Go语言和区块链底层有深厚背景的工程师。Scroll作为基于zkEVM的Layer 2解决方案,其核心基础设施的开发必然重度依赖Golang(例如,对Geth客户端的深度定制和优化)。
从技术角度看,这个职位的核心工作很可能涉及:
- zkEVM节点的开发与维护:修改和优化Go-Ethereum(Geth)客户端,使其与zkEVM的证明系统和Rollup机制协同工作。
- 高性能分布式系统:构建和维护稳定、高可用的节点网络,处理区块链状态同步、交易池管理、共识层交互等。
- 密码学原语集成:虽然零知识证明电路本身可能用Rust或其他语言编写,但基础设施工程师需要将证明生成、验证等环节无缝集成到Go服务中。
以下是一个高度简化的示例,展示了一个典型的Golang基础设施工程师可能需要处理的节点服务启动和RPC模块的代码结构,这类似于在Geth代码库中工作的模式:
package main
import (
"context"
"fmt"
"log"
"net/http"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/node"
"github.com/ethereum/go-ethereum/rpc"
)
// ZkEVMBackend 封装了扩展的以太坊后端,集成了zkEVM特定的逻辑
type ZkEVMBackend struct {
*eth.Ethereum
// 添加zkEVM特有的字段,例如证明验证器接口
// ProofVerifier zk.Verifier
}
// StartZkEVMNode 启动一个集成了zkEVM功能的完整节点
func StartZkEVMNode(ctx context.Context, config *node.Config, ethConfig *eth.Config) error {
// 1. 创建基础节点
stack, err := node.New(config)
if err != nil {
return fmt.Errorf("failed to create node: %v", err)
}
// 2. 创建并注册扩展的后端(这里是关键,需要将Geth的核心引擎与zkEVM逻辑结合)
backend, err := eth.New(stack, ethConfig)
if err != nil {
return fmt.Errorf("failed to create eth backend: %v", err)
}
zkBackend := &ZkEVMBackend{Ethereum: backend}
// 3. 注册自定义的RPC API,暴露zkEVM特有的方法(如证明状态查询)
apis := []rpc.API{
{
Namespace: "zkevm",
Version: "1.0",
Service: NewZkEVMAPI(zkBackend),
Public: true,
},
}
if err := stack.RegisterAPIs(apis); err != nil {
return fmt.Errorf("failed to register zkEVM APIs: %v", err)
}
// 4. 启动节点(这将启动所有服务,包括HTTP/WebSocket RPC、P2P网络等)
if err := stack.Start(); err != nil {
return err
}
// 保持运行,直到上下文被取消
<-ctx.Done()
stack.Close()
return nil
}
// ZkEVMAPI 暴露给外部的RPC接口
type ZkEVMAPI struct {
backend *ZkEVMBackend
}
func NewZkEVMAPI(backend *ZkEVMBackend) *ZkEVMAPI {
return &ZkEVMAPI{backend: backend}
}
// GetFinalizedStateRoot 是一个示例性的zkEVM扩展RPC方法,用于获取最终化的状态根
func (api *ZkEVMAPI) GetFinalizedStateRoot(blockNumber rpc.BlockNumber) (string, error) {
// 这里会包含与zkEVM证明系统交互的逻辑,例如从合约或特定服务中查询已验证的状态
// stateRoot, err := api.backend.ProofVerifier.GetFinalizedState(blockNumber)
// return stateRoot.Hex(), err
return "0x...", nil
}
func main() {
ctx := context.Background()
// 加载配置...
// nodeConfig := &node.Config{...}
// ethConfig := ð.Config{...}
// 启动节点
if err := StartZkEVMNode(ctx, nodeConfig, ethConfig); err != nil {
log.Fatalf("Failed to start zkEVM node: %v", err)
}
}
对于希望申请此职位的工程师,建议深入理解:
- Go-Ethereum代码库:特别是
core、eth、node和rpc包。 - 以太坊协议:交易生命周期、状态树、共识机制(尤其是以太坊Layer 1作为数据可用性层和结算层的交互)。
- Rollup与zkEVM基础架构:序列器(Sequencer)、协调器(Coordinator)、验证者(Verifier)的角色,以及数据压缩、证明提交的流程。
拥有在类似项目(如Optimism、Arbitrum、zkSync Era、Polygon zkEVM)中贡献Golang代码的经验,或对Geth有提交记录,将是强有力的竞争优势。这个职位的技术挑战在于如何将零知识证明的复杂性与高吞吐量、低延迟的分布式系统需求结合起来,并用Golang实现稳定、高效的生产级代码。


