远程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

5 回复

嘿,加里,

我刚给你发了封邮件 🙂

干杯! 马克

更多关于远程Golang区块链基础设施工程师招聘的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你好,

我很感兴趣,并且已经通过电子邮件联系了。

请审阅并就此事分享您的反馈 🙂

此致 Maria

你好,玛丽亚!

感谢你的回复,我期待着与你交流!恐怕我还没有收到你的邮件,你能重新发送一下吗?

祝一切顺利, 马克

您好,

我很乐意为您提供帮助。

如需进一步详细讨论,请通过邮件 garry@cisinlabs.com 或 Skype: cis.garry 与我联系。

期待您的回复。

谢谢。

这是一个非常吸引人的机会,尤其对于在Go语言和区块链底层有深厚背景的工程师。Scroll作为基于zkEVM的Layer 2解决方案,其核心基础设施的开发必然重度依赖Golang(例如,对Geth客户端的深度定制和优化)。

从技术角度看,这个职位的核心工作很可能涉及:

  1. zkEVM节点的开发与维护:修改和优化Go-Ethereum(Geth)客户端,使其与zkEVM的证明系统和Rollup机制协同工作。
  2. 高性能分布式系统:构建和维护稳定、高可用的节点网络,处理区块链状态同步、交易池管理、共识层交互等。
  3. 密码学原语集成:虽然零知识证明电路本身可能用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 := &eth.Config{...}

    // 启动节点
    if err := StartZkEVMNode(ctx, nodeConfig, ethConfig); err != nil {
        log.Fatalf("Failed to start zkEVM node: %v", err)
    }
}

对于希望申请此职位的工程师,建议深入理解:

  • Go-Ethereum代码库:特别是coreethnoderpc包。
  • 以太坊协议:交易生命周期、状态树、共识机制(尤其是以太坊Layer 1作为数据可用性层和结算层的交互)。
  • Rollup与zkEVM基础架构:序列器(Sequencer)、协调器(Coordinator)、验证者(Verifier)的角色,以及数据压缩、证明提交的流程。

拥有在类似项目(如Optimism、Arbitrum、zkSync Era、Polygon zkEVM)中贡献Golang代码的经验,或对Geth有提交记录,将是强有力的竞争优势。这个职位的技术挑战在于如何将零知识证明的复杂性与高吞吐量、低延迟的分布式系统需求结合起来,并用Golang实现稳定、高效的生产级代码。

回到顶部