
Giới thiệu Surfpool: Giải pháp thay thế Solana Devnet
Trong bài viết này, chúng tôi giới thiệu Surfpool, một dự án thuộc Helius Startup Launchpad, đã giành giải nhất tại Radar Hackathon của Colosseum và đang tạo nên làn sóng mới trong hệ sinh thái nhà phát triển Solana.
Trước tiên, chúng ta sẽ phân tích Localnet, Devnet và Mainnet—vai trò, điểm mạnh và những hạn chế của từng môi trường—sau đó đi sâu vào Surfnet và Hạ tầng dưới dạng mã để khám phá cách chúng mở ra một cấp độ mới về tốc độ, độ an toàn và sự tự tin cho các nhà phát triển trên Solana.
Surfpool là gì?
Surfpool là giải pháp thay thế trực tiếp cho các môi trường kiểm thử Localnet, được xây dựng chuyên biệt để mang lại trải nghiệm tốt nhất có thể cho các nhà phát triển trên Solana. Surfpool cho phép mô phỏng cục bộ các chương trình Solana bằng những tài khoản Mainnet được truy xuất đúng lúc cần dùng.
Surfpool cũng tích hợp liền mạch Hạ tầng dưới dạng mã (IaC) vào các dự án dựa trên Anchor hoặc Pinocchio, cho phép triển khai có thể tái tạo, kiểm tra và bảo mật trên mọi mạng Solana—riêng tư hoặc công khai.
Trước khi tìm hiểu cách Surfpool cải thiện trải nghiệm phát triển trên Solana, chúng ta cần xem xét bối cảnh mạng mà các nhà phát triển đang sử dụng hiện nay.
Solana có nhiều cụm mạng—Localnet, Devnet và Mainnet—mỗi cụm phục vụ một mục đích khác nhau trong vòng đời phát triển. Dù rất cần thiết, các môi trường này cũng đi kèm những đánh đổi ảnh hưởng đến tốc độ, độ tin cậy và sự tự tin khi phát hành mã.
Localnet
Localnet là một phiên bản cục bộ của blockchain Solana, thường được khởi chạy bằng lệnh solana-test-validator. Về cơ bản, đây là một blockchain riêng tư chạy trên máy của bạn, không có độ trễ mạng và cho phép toàn quyền kiểm soát môi trường.
Trở nên phổ biến nhờ khả năng tích hợp chặt chẽ với framework Anchor, Localnet mô phỏng môi trường thực thi của Solana với độ trung thực cao, rất phù hợp để lặp nhanh và gỡ lỗi. Các nhà phát triển dùng nó để mô phỏng giao dịch, xác thực logic chương trình, sửa lỗi, đặt lại trạng thái và lặp lại quy trình.
Localnet cũng thường được tích hợp vào các pipeline tích hợp liên tục (CI). Nhờ đó, các nhóm có thể chạy bộ kiểm thử tự động sau mỗi commit để bảo đảm thay đổi không làm hỏng hành vi hiện có. Điều này giúp duy trì chất lượng mã và phát hiện sớm lỗi hồi quy.
Tuy nhiên, tính cô lập này cũng là hạn chế lớn nhất của Localnet.
Localnet hoạt động trong môi trường tách biệt: không có tài khoản thực tế, không thể truy cập dữ liệu Mainnet hay tương tác với các giao thức đang hoạt động trong hệ sinh thái.
Vì vậy, dù hoàn hảo cho mô phỏng độc lập, Localnet không đáp ứng tốt việc kiểm thử khả năng kết hợp hoặc xác thực đầu cuối trong điều kiện thực tế.
Localnet của Solana tương đương với Devnet của Ethereum—một môi trường cục bộ biệt lập để mô phỏng nhanh và riêng tư.
Solana Devnet
Devnet là mạng Solana công khai do Solana Foundation và một số validator do cộng đồng vận hành quản lý. Mạng này mô phỏng kiến trúc và hành vi thực thi của Mainnet nhưng không có rủi ro kinh tế.
Token trên Devnet không có giá trị thực tế. Để nhận token, các nhà phát triển dựa vào faucet—những endpoint công khai phân phối một lượng nhỏ token thử nghiệm phục vụ mục đích phát triển.
Các faucet này thường bị giới hạn tần suất, và mỗi token thường có faucet riêng với những quy tắc khác nhau (ví dụ: Solana faucet của Helius, USDC faucet do Circle vận hành, v.v.), khiến việc thiết lập một rổ token trở nên rườm rà và tốn thời gian.
Devnet đóng vai trò là môi trường staging công khai và dùng chung. Các nhà phát triển sử dụng Devnet để mô phỏng tương tác giữa các chương trình, kiểm thử hành vi phía client trong môi trường trực tiếp và chuẩn bị ra mắt trên Mainnet. Môi trường này thuận tiện khi làm việc với các tích hợp của bên thứ ba như oracle, DEX hoặc chương trình token không có trên Localnet.
Vì các endpoint RPC của Devnet được cung cấp công khai, Devnet cũng thường được dùng để phát triển và gỡ lỗi frontend của ứng dụng.
Nhiều nhóm cũng dựa vào Devnet để xây dựng môi trường kiểm thử nội bộ. Các giao thức lớn hơn (ví dụ: Pyth) đôi khi tạo bản triển khai “sandbox” của ứng dụng trên Devnet để hỗ trợ các nhóm khác kiểm thử tích hợp.
Cần nhớ rằng mỗi nhóm tự xác định chiến lược triển khai Devnet của mình. Khác với Mainnet, nơi các giao thức thường được kiểm toán, ổn định và cập nhật, các bản triển khai Devnet có thể lỗi thời, không đầy đủ hoặc cấu hình sai.
Do đó, khả năng kết hợp bị hạn chế.
Tất nhiên, vẫn có nhiều biến thể. Một số nhóm duy trì môi trường Devnet nội bộ riêng để staging và kiểm thử tích hợp, trong khi các nhóm khác vận hành Devnet công khai để hỗ trợ nhà phát triển và đối tác bên thứ ba. Những môi trường tùy chỉnh này thường mang lại khả năng kiểm soát, độ ổn định hoặc quyền truy cập phù hợp hơn so với Solana Devnet dùng chung.
Devnet của Solana tương đương với Testnet của Ethereum.
Solana Mainnet-beta
Mainnet là môi trường thực tế: mạng tiếp nhận hàng nghìn giao dịch có tính đối kháng mỗi giây, token có giá trị thật và mọi sai sót đều có thể gây tổn thất lớn. Khác với Devnet hoặc Localnet, việc triển khai lên Mainnet đòi hỏi sự chuẩn bị kỹ lưỡng, quy trình bảo mật nghiêm ngặt và mức độ tin cậy cao vào mã của bạn.
Về mặt vận hành, Mainnet thay đổi mọi thứ.
Các cặp khóa triển khai—thường được lưu trong ví multisig hoặc ví phần cứng—phải được bảo vệ nghiêm ngặt, và bất kỳ vấn đề nào trong quy trình triển khai cũng có thể gây hậu quả nghiêm trọng. Lúc này, bạn phải đối mặt với điều kiện mạng thực tế, bao gồm lưu lượng khó dự đoán, độ trễ thực tế và tương tác với người dùng cũng như tài sản đang hoạt động.
Đổi lại, Mainnet mang đến lợi ích từ khả năng kết hợp đầy đủ và tích hợp với mọi giao thức quan trọng. Đây là nơi chương trình của bạn chứng minh năng lực—dưới áp lực thực tế và ở quy mô toàn diện.
Trên thực tế, phần lớn nhà phát triển mà chúng tôi gặp đều nhanh chóng vấp phải rào cản do khả năng kết hợp hạn chế của Devnet. Để tiến nhanh hơn hoặc truy cập dữ liệu chính xác, họ thường bắt đầu lặp trực tiếp trên Mainnet, kéo theo rủi ro cao hơn, chu kỳ lặp chậm hơn và nhiều chi phí vận hành hơn. Devnet không thể trở thành cầu nối hữu ích giữa hai môi trường.
Giới thiệu Surfnets
Surfnet mang lại lợi ích của Localnet ưu tiên cục bộ, đồng thời bảo đảm các giao dịch có thể truy cập trạng thái Mainnet mà không cần đồng bộ node.
Đây là câu trả lời của Surfpool cho những hạn chế của các mạng Solana truyền thống: một môi trường được xây dựng chuyên biệt, lấy nhà phát triển làm trung tâm và thu hẹp khoảng cách giữa Localnet với Mainnet.
Surfpool truy xuất dữ liệu tài khoản trực tiếp theo nhu cầu từ bất kỳ RPC nào bạn chọn, đồng thời cô lập và theo dõi trạng thái chương trình của bạn trên máy cục bộ. Nhờ đó, bạn có toàn quyền kiểm soát, lặp nhanh hơn và sở hữu một môi trường mô phỏng sát thực tế.
Nhờ kiến trúc này, Surfnet hoạt động như một mạng được fork theo cơ chế lazy: sao chép trạng thái khi đọc và ghi các thay đổi cục bộ. Giống Localnet, Surfnet khởi động tức thì và nhanh hơn đáng kể. Các phiên bản Surfnet rất nhẹ và có thể chạy trên thiết bị giá rẻ như Raspberry Pi.
Nhờ tuân thủ quy ước RPC chuẩn, Surfpool mặc nhiên tương thích với các ví, trình khám phá và công cụ CLI dựa vào những endpoint đó.
Các phương thức RPC của Surfnet
Để cải thiện hơn nữa trải nghiệm phát triển trên Solana, Surfnet giới thiệu một nhóm phương thức RPC—được gọi là cheatcode—cho phép bạn điều chỉnh quy tắc mạng để lặp nhanh hơn và kiểm soát tốt hơn trong quá trình mô phỏng. Các phương thức này gồm:
surfnet_setAccount: Chèn dữ liệu tài khoản tùy ý vào trạng thái mạng.surfnet_setTokenAccount: Tạo tức thì các tài khoản token với số dư và metadata tùy chỉnh.surfnet_setMintAccount: Xác định hoặc ghi đè cấu hình mint, bao gồm nguồn cung, số chữ số thập phân và các authority.
Những cheatcode này hoạt động như siêu năng lực cho quá trình phát triển cục bộ, cho phép tạo ra các tình huống vốn sẽ đòi hỏi quá trình nghiên cứu tẻ nhạt, thiết lập thủ công và viết script phức tạp.
Khi kết hợp với dữ liệu Mainnet, cheatcode mang lại cho nhà phát triển sức mạnh chưa từng có. Mạng cục bộ của họ có toàn quyền truy cập bối cảnh thực tế, đồng thời cho phép tùy ý điều chỉnh quy tắc để tạo ra các mô phỏng phong phú, có kiểm soát và cực kỳ sát thực tế.
Việc tái tạo thiết lập có vẻ đơn giản và rõ ràng này trên Localnet thường sẽ mất nhiều ngày.
Nghiên cứu tình huống về cheatcode: The Heist
Để minh họa khả năng của các cheatcode trong Surfpool, chúng tôi đã xây dựng một faucet có tên mã là The Heist.
Tại sao lại có tên này? Vì trải nghiệm giống như cướp ngân hàng—không trở ngại, không rủi ro và toàn quyền kiểm soát. Nạp tức thì bất kỳ token nào vào bất kỳ tài khoản nào: SOL, USDC hoặc SPL tùy chỉnh. Không giới hạn tần suất, không chờ đợi, không cần dịch vụ bên thứ ba. Chỉ một lệnh là bạn có ngay thanh khoản.
Faucet luôn là một điểm bất tiện đối với nhà phát triển—chậm, thiếu ổn định và phân tán khắp hệ sinh thái. Với The Heist, chúng tôi đã đảo ngược tình thế. Công cụ này nhanh, chạy cục bộ và được tích hợp vào môi trường Surfnet của bạn.
Điều này chỉ khả thi nhờ thiết kế của Solana. Chương trình token biên dịch sẵn dùng chung bảo đảm bố cục lưu trữ nhất quán trên mọi token, qua đó biến loại faucet đa năng này thành hiện thực. Điều này sẽ không thể thực hiện trên những nền tảng có cách triển khai token rất khác nhau.
The Heist không chỉ là một công cụ phát triển—đó còn là tuyên ngôn về những khả năng mà mô phỏng nhanh và gọn gàng có thể mở ra.
Hạ tầng tiền mã hóa dưới dạng mã (IaC)
Chạy các mô phỏng mạnh mẽ chỉ là một phần của câu chuyện—Surfpool còn đưa Hạ tầng dưới dạng mã đến Solana, mang lại khả năng tái tạo, tự động hóa và bảo mật cho mọi lượt triển khai mà không tạo thêm nhiều chi phí cho nhà phát triển.
Hạ tầng tiền mã hóa dưới dạng mã (IaC) là một chủ đề hoàn toàn xứng đáng có một bài viết riêng. Trong nhiều năm qua, chúng tôi đã tích lũy chuyên môn sâu trong lĩnh vực này qua quá trình trực tiếp làm việc với các giao thức phức tạp như Pyth, Wormhole Core, Circle CCTP, Bitcoin Ordinals và nhiều giao thức khác.
Ở cấp độ tổng quan, hạ tầng tiền mã hóa thường gồm ba nhóm thành phần chính:
- Hạ tầng onchain
- Hạ tầng ký
- Hạ tầng offchain
Hạ tầng onchain
Nhóm này bao gồm triển khai, nâng cấp chương trình và di chuyển trạng thái. Trong một hệ thống IaC được thiết kế tốt, smart contract được triển khai thông qua các quy trình có thể tái tạo và kiểm tra, qua đó bảo đảm tính toàn vẹn, khả năng kiểm soát phiên bản và truy vết.
Hạ tầng ký
Hầu hết sự cố bảo mật xảy ra trong quá trình quản lý khóa. Thay vì dựa vào các cặp khóa cục bộ thiếu an toàn, hệ thống cấp độ production sử dụng ví phần cứng, mật mã ngưỡng hoặc cấu hình multisig để ký giao dịch một cách an toàn và có trách nhiệm.
Trong một hệ thống IaC được thiết kế tốt, hạ tầng ký phải có tính mô-đun và khả năng cấu hình, cho phép chuyển từ khóa riêng được hardcode sang một quy trình multisig phức tạp chỉ bằng cách cập nhật vài dòng cấu hình.
Hạ tầng offchain
Nhóm này bao gồm mọi thành phần bao quanh và hỗ trợ smart contract của bạn: bộ lập chỉ mục, trình theo dõi trạng thái, trình giám sát ví, script tự động hóa và nhiều thành phần khác.
Các thành phần này thường liên kết chặt chẽ với sự kiện onchain và cần được quản lý như mã—có thể kiểm thử cục bộ, dễ di chuyển và triển khai đầy đủ.
Trong tầm nhìn của chúng tôi về Hạ tầng tiền mã hóa dưới dạng mã, chúng tôi chủ đích không bao gồm việc cung cấp node và quản lý endpoint RPC. Những nhu cầu này đã được các công cụ hiện có như Terraform, Ansible hoặc giải pháp cloud-native đáp ứng tốt và không cần được xây dựng lại trong phạm vi hạ tầng cấp ứng dụng.
Lợi ích của Hạ tầng tiền mã hóa dưới dạng mã
Một hệ thống IaC được thiết kế tốt phải có thể phân tích tĩnh. Bạn không cần thực thi bất kỳ đoạn mã nào để hiểu hệ thống sẽ làm gì.
Bạn phải có thể tạo trước một kế hoạch thực thi hoàn chỉnh, nêu chi tiết các chương trình và bên ký sẽ tham gia, những tài nguyên sẽ bị tác động và tổng chi phí.
Không dùng DSL dựa trên JavaScript hay shell script không minh bạch—chỉ có mã khai báo rõ ràng. Hệ thống phải có khả năng kết hợp, dễ bảo trì và gần như không đòi hỏi thời gian làm quen.
Với một hệ thống như vậy, việc chuyển từ Localnet sang Mainnet phải đơn giản như thay đổi hạ tầng ký từ một cặp khóa cục bộ lưu trên ổ đĩa sang bên ký Squad.
Chúng tôi đã mất nhiều tháng để thiết kế và xây dựng stack mang tên Web3 Runbooks—tinh chỉnh ngôn ngữ, đơn giản hóa cách sử dụng và giúp runtime vừa an toàn vừa có khả năng kết hợp.
Với Surfpool, chúng tôi muốn giúp công nghệ Runbook này dễ tiếp cận và thân thiện hơn nữa, đồng thời tiếp tục mở rộng giới hạn để bảo đảm các nhà phát triển Solana có thể xây dựng trên nền tảng tốt nhất có thể.
Bằng cách kết hợp Surfnets và Hạ tầng tiền mã hóa dưới dạng mã trong Surfpool, chúng tôi đang tạo ra công cụ dành cho nhà phát triển mà chúng tôi tin là tốt nhất trong Web3. Các nhà phát triển có quyền truy cập vào một stack ưu tiên cục bộ và có thể dần chuyển sang Mainnet khi giao thức trưởng thành chỉ bằng cách điều chỉnh cấu hình IaC.
Để hoàn thiện quy trình và quay lại chủ đề mạng, cần lưu ý rằng Surfnets có thể được định nghĩa và quản lý thông qua Hạ tầng dưới dạng mã. Điều này cho phép các nhà phát triển dễ dàng khởi chạy mạng tạm thời, được cấu hình sẵn với hàng trăm tài khoản đã nạp đúng rổ token (SOL, USDC, v.v.) cần thiết để tương tác với giao thức của họ.
Tài nguyên và tài liệu
Chúng tôi khuyên bạn xem tập Solana Changelog này do Jacob Creech, Trưởng bộ phận Quan hệ Nhà phát triển tại Solana Foundation, dẫn dắt để tìm hiểu chuyên sâu về Surfpool trong 45 phút.
Chúng tôi cũng đang ra mắt một loạt video hướng dẫn quay màn hình ngắn nhằm giúp các nhà phát triển bắt đầu với Surfpool qua những buổi thực hành ngắn gọn, dễ tiếp thu.
Tài liệu đầy đủ của chúng tôi có tại docs.surfpool.run.
Kết luận
Chặng đường phía trước còn dài, nhưng tương lai rất sáng. Các nhà phát triển đã thể hiện sự quan tâm mạnh mẽ đến Surfpool, và phản hồi của họ càng củng cố niềm tin rằng chúng tôi đang xây dựng một công cụ thiết yếu.
Tuy vậy, chúng tôi mới chỉ bắt đầu khai phá tiềm năng.
Sứ mệnh của chúng tôi là khiến các mô phỏng Mainnet không thể phân biệt với môi trường thực tế.
Hiện tại, Surfpool vẫn chưa tính đến một số khía cạnh quan trọng, chẳng hạn như xung đột và mức độ ưu tiên của giao dịch, hoặc các hành vi đối kháng như MEV và tấn công sandwich.
Chúng tôi rất háo hức với những bước tiếp theo. Surfpool đã thay đổi cách mọi người xây dựng trên Solana—và chúng tôi cam kết sẽ đưa công cụ này tiến xa hơn nữa.
Bài viết liên quan
Đăng ký nhận tin từ Helius
Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài


