Ganache là gì?
Ganache là trình mô phỏng blockchain cục bộ, cho phép nhà phát triển xây dựng, triển khai, kiểm thử và gỡ lỗi hợp đồng thông minh tương thích với Ethereum mà không cần sử dụng tiền mã hóa thật.Ganache tạo môi trường blockchain riêng trên máy tính của nhà phát triển và mô phỏng nhiều hoạt động quan trọng của Ethereum Virtual Machine, thường được gọi là EVM.Nhà phát triển có thể dùng Ganache để tạo tài khoản thử nghiệm, triển khai hợp đồng Solidity, gửi giao dịch, kiểm tra block, đo lượng gas sử dụng và theo dõi các thay đổi của trạng thái blockchain.Tài liệu Ganache chính thức đã lưu trữ mô tả Ganache là blockchain cá nhân phục vụ phát triển ứng dụng phi tập trung nhanh chóng trong một môi trường an toàn và có tính xác định.
Ganache từng phổ biến vì cho phép nhà phát triển bắt đầu kiểm thử ngay mà không cần vận hành node blockchain công khai hoàn chỉnh hoặc tìm token thử nghiệm.Giao dịch có thể được xác nhận ngay lập tức, tài khoản có thể bắt đầu với số dư ETH mô phỏng lớn và toàn bộ blockchain có thể được đặt lại bất cứ khi nào cần.Ganache có phiên bản ứng dụng desktop giao diện đồ họa, giao diện dòng lệnh và gói JavaScript có thể tích hợp vào quy trình phát triển.Ganache không phải là tiền mã hóa, blockchain công khai, ví, token hay nền tảng giao dịch phi tập trung.Đây là phần mềm phát triển được thiết kế để mô phỏng hoạt động blockchain trên một mạng cục bộ có kiểm soát.Ganache còn được duy trì không?
Ganache không còn được duy trì tích cực.Consensys thông báo ngừng Ganache và bộ công cụ phát triển Truffle rộng hơn vào ngày 21 tháng 9 năm 2023.Thông báo ngừng Ganache chính thức cho biết mã nguồn sẽ vẫn được công khai sau giai đoạn chuyển đổi.
Kho mã nguồn Ganache được lưu trữ vào ngày 26 tháng 2 năm 2024 và hiện ở chế độ chỉ đọc.
Phần mềm đã lưu trữ vẫn có thể sử dụng được trong môi trường hỗ trợ các phần phụ thuộc và quy tắc Ethereum mà phần mềm yêu cầu.Tuy nhiên, phần mềm đã lưu trữ thường không nhận tính năng mới, bản vá bảo mật, cập nhật phần phụ thuộc, bản sửa lỗi hay hỗ trợ cho các lần nâng cấp mạng sau này.Hạn chế này rất đáng lưu ý vì Ethereum liên tục bổ sung opcode, định dạng giao dịch, quy tắc gas, tính năng tài khoản và thay đổi trong quá trình thực thi.Hợp đồng Solidity hiện đại có thể sử dụng các chỉ thị mà phiên bản Ganache cũ không nhận diện được.Hợp đồng vượt qua mọi bài kiểm thử trên Ganache cũng có thể hoạt động khác trên blockchain công khai hiện tại nếu Ganache mô phỏng các quy tắc giao thức cũ hơn.Do đó, nên xem Ganache là phần mềm phát triển Ethereum cũ, không phải tiêu chuẩn kiểm thử sản phẩm hiện hành.Ganache hoạt động như thế nào?
Ganache khởi chạy một tiến trình blockchain cô lập do nhà phát triển kiểm soát.Tiến trình này quản lý tài khoản, số dư, block, giao dịch, mã hợp đồng thông minh, dữ liệu lưu trữ, log và các trạng thái blockchain khác trên máy cục bộ.Ganache cung cấp một endpoint JSON-RPC tương thích với Ethereum để các tập lệnh phát triển, ví, ứng dụng trình duyệt và công cụ kiểm thử có thể kết nối.Tài liệu Ethereum JSON-RPC giải thích giao diện tiêu chuẩn mà các ứng dụng sử dụng để giao tiếp với client thực thi Ethereum.
Khi giao dịch được gửi đến Ganache, trình mô phỏng xác thực yêu cầu, thực thi các chỉ thị EVM liên quan, cập nhật trạng thái cục bộ và trả về biên nhận giao dịch.Ganache có thể tạo block mới ngay sau khi nhận giao dịch hoặc đào block theo khoảng thời gian được cấu hình.Vì nhà phát triển kiểm soát blockchain nên không cần cạnh tranh với những người dùng khác để giành không gian block công khai.Nhà phát triển cũng có thể khởi động lại chuỗi, thay đổi cấu hình, thay tài khoản hoặc xóa lịch sử.Các quyền kiểm soát này giúp Ganache nhanh và dễ dự đoán, nhưng cũng khiến nó khác biệt căn bản với blockchain công khai phi tập trung.Blockchain cá nhân là gì?
Blockchain cá nhân là môi trường blockchain riêng được vận hành để phát triển, đào tạo hoặc kiểm thử.Khác với Ethereum mainnet, blockchain này không được bảo mật bởi một tập hợp validator phân tán, độc lập về mặt kinh tế.Người vận hành blockchain kiểm soát trạng thái ban đầu, tài khoản, hoạt động đào block, dấu thời gian và cài đặt mạng.Thông thường, người vận hành có thể đặt lại hoặc viết lại môi trường cục bộ mà không cần sự chấp thuận của những người tham gia mạng khác.Tính linh hoạt này cho phép nhà phát triển chạy lại cùng một bài kiểm thử trong những điều kiện giống hệt nhau.Điều đó cũng có nghĩa blockchain cá nhân không tái tạo được tính bảo mật kinh tế, tính phi tập trung, tình trạng tắc nghẽn, thứ tự giao dịch hay hoạt động đối kháng của mạng crypto công khai.Ganache phù hợp nhất với mô tả là trình mô phỏng blockchain cá nhân, thay vì blockchain sản phẩm thực tế.Tài khoản Ganache và ETH mô phỏng
Một phiên Ganache thông thường tạo một số tài khoản thử nghiệm khi blockchain cục bộ khởi chạy.Mỗi tài khoản thường được cấp một lượng lớn ETH mô phỏng.Lượng ETH này có thể dùng để thanh toán phí gas mô phỏng, triển khai hợp đồng, chuyển giá trị và tương tác với các ứng dụng phi tập trung bên trong Ganache.ETH trên Ganache không có giá trị thị trường vì chỉ tồn tại trong cơ sở dữ liệu blockchain cục bộ.Không thể chuyển trực tiếp lượng ETH này lên Ethereum mainnet hoặc đổi lấy tiền mã hóa thật thông qua giao thức blockchain.Ganache có thể tạo tài khoản từ một cụm từ ghi nhớ xác định.Dùng cùng cụm từ ghi nhớ, đường dẫn dẫn xuất và cấu hình có thể tạo lại cùng địa chỉ và khóa riêng tư trong một phiên Ganache khác.Tài khoản xác định hữu ích vì bài kiểm thử tự động có thể biết trước những địa chỉ và số dư sẽ có trước khi bắt đầu.Các khóa riêng tư được chủ ý để có thể truy cập vì những tài khoản này được thiết kế cho mục đích phát triển.Không bao giờ nhập cụm từ khôi phục của ví thật hoặc khóa riêng tư dùng trong môi trường sản phẩm vào Ganache.Cũng không bao giờ dùng lại khóa phát triển cho địa chỉ sẽ lưu trữ tiền mã hóa có giá trị trên mạng công khai.Giao diện đồ họa Ganache
Giao diện đồ họa Ganache cung cấp cách trực quan để tạo và kiểm tra blockchain cá nhân.Màn hình tài khoản hiển thị địa chỉ cục bộ, số dư, số lượng giao dịch và khóa riêng tư.Màn hình block và giao dịch cho phép nhà phát triển xem lại hoạt động được đào cục bộ.Các trang liên quan đến hợp đồng có thể hiển thị hợp đồng đã triển khai, sự kiện, thông tin lưu trữ và chi tiết thực thi khi có thông tin dự án.Giao diện này giúp nhà phát triển đang học các công cụ blockchain dòng lệnh dễ tiếp cận với Ganache hơn.Người dùng có thể tạo workspace với các cấu hình tài khoản, đào block, mạng và fork khác nhau.Hướng dẫn bắt đầu nhanh Ganache đã lưu trữ trình bày quy trình trước đây để tạo blockchain cá nhân bằng ứng dụng desktop.
Giao diện đồ họa hiện là phần mềm cũ và không nên được kỳ vọng sẽ hỗ trợ các tính năng Ethereum hiện tại.Giao diện dòng lệnh Ganache
Giao diện dòng lệnh Ganache cho phép nhà phát triển khởi chạy và cấu hình blockchain cục bộ từ terminal.Một bản cài đặt cũ thường có thể được khởi chạy bằng lệnh như
Tài liệu tham khảo các tùy chọn Ganache CLI đã lưu trữ ghi lại những nhóm cấu hình trước đây dành cho nhà phát triển Ethereum.
Chương trình dòng lệnh cũng có thể được khởi chạy ở chế độ chạy nền để blockchain cục bộ tiếp tục hoạt động độc lập với lệnh terminal ban đầu.Vì gói phần mềm đã được lưu trữ, việc cài đặt trong môi trường hiện đại có thể gặp vấn đề tương thích về phần phụ thuộc, hệ điều hành hoặc runtime.Workspace Ganache
Workspace Ganache lưu cấu hình cho một dự án blockchain cục bộ cụ thể.Workspace có thể xác định tài khoản, cụm từ ghi nhớ, cài đặt chuỗi, hoạt động đào block, đường dẫn cơ sở dữ liệu và dự án hợp đồng thông minh được liên kết.Workspace lưu trữ lâu dài cho phép lịch sử blockchain và trạng thái hợp đồng đã triển khai vẫn khả dụng sau khi đóng ứng dụng.Workspace tạm thời có thể bắt đầu với trạng thái mới mỗi khi Ganache khởi động lại.Trạng thái cục bộ được lưu lâu dài rất tiện trong quá trình phát triển, nhưng cũng có thể gây nhầm lẫn về nonce, việc triển khai hoặc chênh lệch số dư giữa các lần kiểm thử.Kiểm thử tự động thường hoạt động hiệu quả hơn trong môi trường xác định sạch, thay vì cơ sở dữ liệu cục bộ cũ chứa các giao dịch trước đó.Đào block tức thì trên Ganache
Ganache có thể xác nhận giao dịch ngay lập tức bằng cách đào block ngay khi nhận giao dịch.Đào block tức thì giúp bộ kiểm thử hợp đồng thông minh chạy nhanh hơn nhiều so với trên blockchain công khai.Nhà phát triển có thể triển khai và tương tác với hợp đồng mà không cần chờ khoảng thời gian tạo block công khai.Ganache cũng có thể được cấu hình để đào block theo các khoảng thời gian đều đặn.Điều khiển đào thủ công cho phép bài kiểm thử tạo giao dịch đang chờ trước khi quyết định thời điểm tạo block.Các tính năng này hữu ích khi kiểm thử ứng dụng blockchain, nhưng đào block tức thì có thể che khuất những vấn đề trong môi trường sản phẩm liên quan đến độ trễ, cạnh tranh phí, giao dịch thay thế và trạng thái thay đổi.Ứng dụng phi tập trung không bao giờ nên giả định giao dịch thật sẽ được xác nhận ngay chỉ vì giao dịch được xác nhận tức thì trên Ganache.Snapshot và hoàn nguyên trên Ganache
Ganache hỗ trợ snapshot để ghi lại trạng thái hiện tại của blockchain cục bộ.Nhà phát triển có thể tạo snapshot, thực hiện một số giao dịch rồi hoàn nguyên blockchain về trạng thái đã lưu.Tính năng này cho phép các bài kiểm thử bắt đầu nhiều lần với cùng số dư tài khoản, dữ liệu lưu trữ hợp đồng, dấu thời gian và lịch sử block.Snapshot giúp giảm nhu cầu triển khai lại mọi hợp đồng trước từng bài kiểm thử riêng lẻ.Chúng cũng giúp nhà phát triển tái tạo lỗi từ một trạng thái blockchain xác định.Snapshot Ganache chỉ là tính năng kiểm thử cục bộ và không ảnh hưởng đến blockchain công khai.Người dùng không thể đảo ngược giao dịch Ethereum mainnet đã hoàn tất bằng lệnh snapshot của Ganache.Điều chỉnh thời gian trên Ganache
Ganache cho phép nhà phát triển tăng thời gian blockchain và kiểm soát dấu thời gian của các block được tạo cục bộ.Tính năng này hữu ích khi kiểm thử vesting token, lịch staking, thời gian quản trị, đấu giá, hạn vay, hệ thống đăng ký và hợp đồng khóa theo thời gian.Nhà phát triển có thể mô phỏng vài tháng trôi qua mà không cần chờ thời gian thực.Bài kiểm thử cũng có thể xem xét hoạt động ngay trước và sau thời điểm hết hạn.Dấu thời gian Ethereum công khai được tạo theo quy tắc mạng và không do nhà phát triển ứng dụng kiểm soát.Do đó, nên kiểm thử hợp đồng với các biến thiên dấu thời gian thực tế, thay vì chỉ dùng các giá trị cục bộ hoàn toàn dễ dự đoán.Fork mạng trên Ganache
Ganache có thể tạo fork cục bộ của mạng công khai tương thích với Ethereum.Fork bắt đầu từ tài khoản, số dư, mã hợp đồng và dữ liệu lưu trữ có trên một block từ xa được chọn.Sau thời điểm bắt đầu đó, các giao dịch mới được thực thi cục bộ và không làm thay đổi blockchain công khai ban đầu.Fork cho phép nhà phát triển kiểm thử tương tác với token hiện có, giao thức phi tập trung hoặc hệ thống hợp đồng đã triển khai.Tính năng này cũng có thể giúp tái tạo lỗi trong quá khứ với các điều kiện blockchain tương tự thời điểm sự cố xảy ra.Thông thường, cần có endpoint JSON-RPC từ xa để lấy trạng thái blockchain được sao chép.Ganache có thể yêu cầu thêm thông tin từ node từ xa đó khi giao dịch thực thi cục bộ truy cập trạng thái chưa được tải xuống.Kiểm thử fork không cấp quyền kiểm soát tài sản thật vì số dư và trạng thái hợp đồng được sao chép chỉ tồn tại bên trong trình mô phỏng.Phiên bản Ganache đã lưu trữ có thể không fork chính xác mạng hiện tại khi gặp block, giao dịch, opcode hoặc thay đổi giao thức không được hỗ trợ.Giả lập tài khoản trong fork Ganache
Ganache có thể mở khóa cục bộ hoặc giả lập một số địa chỉ blockchain được chọn trong môi trường đã fork.Điều này cho phép bài kiểm thử gửi giao dịch như thể giao dịch đến từ một người nắm giữ token, quản trị viên, người tham gia quản trị hoặc tài khoản hợp đồng cụ thể.Giả lập không tiết lộ khóa riêng tư thật của địa chỉ đó.Tính năng này cũng không cấp quyền kiểm soát địa chỉ trên mạng công khai ban đầu.Tính năng hoạt động chỉ vì nhà phát triển kiểm soát trình mô phỏng cục bộ và có thể thay đổi các quy tắc cấp quyền.Giả lập tài khoản hữu ích khi kiểm thử các tình huống khó, nhưng giao dịch trong môi trường sản phẩm vẫn cần được cấp quyền hợp lệ theo quy tắc của mạng thật.Ganache và triển khai hợp đồng thông minh
Nhà phát triển có thể triển khai hợp đồng Solidity đã biên dịch lên Ganache bằng cách gửi giao dịch tạo hợp đồng đến endpoint JSON-RPC cục bộ.Giao dịch chứa bytecode khởi tạo và mọi tham số constructor đã mã hóa.Ganache thực thi constructor và lưu bytecode runtime được tạo ra tại địa chỉ hợp đồng cục bộ.Sau đó, tập lệnh, ví, ứng dụng trình duyệt hoặc hợp đồng cục bộ khác có thể gọi hợp đồng.Triển khai thành công trên Ganache không có nghĩa hợp đồng đã được triển khai lên Ethereum mainnet hoặc testnet công khai.Mỗi blockchain có trạng thái hợp đồng và lịch sử giao dịch độc lập.Khi chuyển từ kiểm thử cục bộ sang mạng công khai, cần có giao dịch triển khai riêng và trả phí mạng.Kiểm thử token tiền mã hóa bằng Ganache
Ganache cho phép nhà phát triển tạo và kiểm thử token có thể thay thế, NFT, token quản trị, hệ thống giá trị ổn định, hợp đồng staking và các ứng dụng crypto khác trên mạng cục bộ.Nhà phát triển có thể kiểm thử việc chuyển token, số dư, hạn mức, phê duyệt, mint, burn, quyền sở hữu, kiểm soát truy cập và log sự kiện.Tài khoản cục bộ có thể nhận token mô phỏng mà không mất chi phí tài chính.Ví kết nối với Ganache có thể hiển thị token cục bộ sau khi thêm đúng địa chỉ hợp đồng cục bộ.Token chỉ tồn tại trên blockchain Ganache cụ thể đó.Đặt lại blockchain có thể xóa token, số dư và toàn bộ lịch sử giao dịch của token.Token cục bộ dùng tên hoặc ký hiệu của một tiền mã hóa thật vẫn chỉ là mô phỏng.Blockchain và địa chỉ hợp đồng là định danh token đáng tin cậy hơn tên hiển thị hoặc mã ticker.Phí gas trên Ganache
Ganache mô phỏng gas của EVM để nhà phát triển theo dõi chi phí thực thi khi triển khai hợp đồng và gọi hàm.Thao tác ghi dữ liệu lưu trữ, calldata, log sự kiện, tạo hợp đồng, gọi bên ngoài và các hoạt động tính toán đều có thể góp phần vào lượng gas hiển thị.Phí mô phỏng được thanh toán từ số dư ETH cục bộ của tài khoản thử nghiệm.Không có ETH thật nào bị tiêu hao khi thực hiện giao dịch Ganache cục bộ thông thường.Nhà phát triển có thể cấu hình giá gas, giới hạn gas block, giới hạn giao dịch và các cài đặt liên quan đến phí khác.Tính linh hoạt này hữu ích khi kiểm thử lỗi hết gas và các hàm hợp đồng tốn kém.Tuy nhiên, số liệu gas của Ganache có thể không phản ánh chính xác Ethereum hiện tại nếu trình mô phỏng sử dụng EVM cũ hoặc lịch gas lỗi thời.Nên đo lại gas trong môi trường được duy trì, hỗ trợ đúng bản nâng cấp mạng và mục tiêu compiler dự kiến dùng để triển khai.Ganache và kiểm thử xác định
Kiểm thử xác định nghĩa là cùng điều kiện ban đầu và đầu vào giao dịch sẽ tạo ra cùng kết quả dự kiến.Ganache hỗ trợ tài khoản, số dư, quá trình tạo block, mã định danh chuỗi và trình tự triển khai mang tính xác định.Bộ kiểm thử có thể khởi chạy Ganache với cụm từ ghi nhớ đã biết, triển khai hợp đồng theo thứ tự cố định và dự đoán địa chỉ cục bộ được tạo ra.Sau đó, có thể đặt lại blockchain trước lần chạy kiểm thử tiếp theo.Tính dễ dự đoán này giúp nhà phát triển xác định liệu thay đổi mã có làm thay đổi hoạt động của hợp đồng hay không.Blockchain công khai thật khó dự đoán hơn vì người dùng không liên quan có thể làm thay đổi trạng thái hợp đồng dùng chung, thứ tự giao dịch, nhu cầu gas, thanh khoản và dấu thời gian.Do đó, nên kết hợp kiểm thử cục bộ xác định với kiểm thử tích hợp và kiểm thử đối kháng rộng hơn.Ganache và Ethereum mainnet
Ethereum mainnet là blockchain công khai phi tập trung, nơi ETH, token và hợp đồng thông minh có thể mang giá trị tài chính thật.Ganache là môi trường mô phỏng do người vận hành kiểm soát cục bộ, có thể thay đổi số dư, thời gian tạo block, tài khoản và lịch sử.Giao dịch mainnet cạnh tranh để giành không gian block giới hạn và trả phí theo điều kiện mạng hiện tại.Ganache có thể sử dụng chế độ đào block tức thì và cài đặt phí có thể cấu hình.Mainnet có hoạt động khó dự đoán từ người dùng và ứng dụng trên khắp thế giới.Chuỗi Ganache mới chỉ chứa tài khoản, hợp đồng và giao dịch do nhà phát triển tạo ra.Tính bảo mật của mainnet phụ thuộc vào giao thức Ethereum rộng hơn và mạng lưới validator.Tính bảo mật của Ganache phụ thuộc vào máy tính cục bộ và cấu hình do một người vận hành kiểm soát.Vượt qua kiểm thử Ganache không chứng minh hợp đồng an toàn hay tương thích với hoạt động mainnet hiện tại.Ganache và testnet công khai
Testnet công khai là blockchain phát triển dùng chung, được nhiều người tham gia vận hành.Hướng dẫn mạng phát triển Ethereum giải thích sự khác biệt giữa môi trường cục bộ và mạng kiểm thử công khai dùng chung.
Testnet công khai cung cấp môi trường thực tế hơn về kết nối mạng, tạo block, cạnh tranh giao dịch và tương tác với các hợp đồng do bên độc lập triển khai.Ganache cung cấp tốc độ thực thi cao hơn, số dư cục bộ miễn phí, quyền kiểm soát toàn diện và khả năng đặt lại trạng thái tức thì.Kiểm thử cục bộ thường phù hợp hơn với kiểm thử đơn vị nhanh, trong khi testnet công khai được duy trì có thể hỗ trợ kiểm thử tích hợp toàn diện hơn.Tiền mã hóa trên testnet cũng không có giá trị tài chính dự kiến, dù tồn tại trên mạng dùng chung thay vì máy tính của một nhà phát triển.Kiểm thử cục bộ và kiểm thử trên testnet công khai đều không thay thế đánh giá bảo mật chuyên nghiệp đối với hợp đồng sẽ kiểm soát tài sản crypto có giá trị.Ganache và mạng Ethereum riêng
Mạng Ethereum riêng có thể gồm nhiều node thực thi và đồng thuận kết nối với nhau mà không tham gia Ethereum mainnet.Ganache thường mô phỏng hoạt động thực thi blockchain trong một tiến trình đơn giản hơn, tập trung vào phát triển.Mạng riêng nhiều node có thể kiểm thử kết nối ngang hàng, truyền block, đồng bộ hóa, hoạt động đồng thuận và lỗi node.Ganache tập trung nhiều hơn vào phát triển ứng dụng nhanh, tài khoản dễ dự đoán, quyền truy cập RPC cục bộ và công cụ kiểm thử thuận tiện.Tài liệu mạng riêng Geth giải thích rằng mạng Ethereum riêng có thể hỗ trợ các tình huống kiểm thử nhiều node và nhiều người dùng.
Do đó, kiểm thử giao thức nâng cao có thể cần mạng nhiều client thay vì một tiến trình Ganache duy nhất.Hạn chế của Ganache
Ganache không tái tạo đầy đủ môi trường kinh tế, mạng lưới, đồng thuận và đối kháng của Ethereum mainnet.Xác nhận tức thì có thể che khuất vấn đề liên quan đến giao dịch đang chờ, base fee thay đổi, xung đột nonce hoặc quy tắc thay thế.Thứ tự giao dịch dễ dự đoán có thể che khuất rủi ro front-running, back-running, cạnh tranh thanh lý và các rủi ro thứ tự khác.Nguồn tiền thử nghiệm không giới hạn có thể che khuất vấn đề cấp vốn tài khoản và onboarding.Mạng cục bộ không tự động có oracle, bridge, pool thanh khoản, token, hệ thống quản trị hoặc hợp đồng bên ngoài thật.Fork có thể bổ sung trạng thái công khai được sao chép, nhưng vẫn không tái tạo được mọi sự kiện có thể xảy ra từ lúc mô phỏng đến khi thực thi trong môi trường sản phẩm.Việc Ganache đã lưu trữ làm tăng nguy cơ không hỗ trợ đầu ra compiler hoặc hoạt động Ethereum hiện tại.Quy trình kiểm thử hoàn chỉnh nên bao gồm công cụ cục bộ được duy trì, kiểm thử trên mạng dùng chung, phân tích bảo mật, fuzzing và rà soát cấu hình triển khai.Rủi ro bảo mật của Ganache
Tài khoản Ganache không được thiết kế để bảo vệ tiền mã hóa có giá trị.Khóa riêng tư có thể được in trong đầu ra terminal, hiển thị trên giao diện đồ họa, lưu trong tệp dự án hoặc tạo từ các cụm từ mặc định phổ biến.Máy chủ RPC Ganache có thể cung cấp các chức năng phát triển mạnh mẽ, tuyệt đối không nên mở cho người dùng internet không đáng tin cậy.Liên kết máy chủ phát triển cục bộ với giao diện mạng công khai có thể tạo ra rủi ro bảo mật không cần thiết.Dữ liệu blockchain đã fork có thể hiển thị số dư tài khoản thật, nhưng số dư cục bộ đó không chứng minh người vận hành kiểm soát tài sản ban đầu.Tập lệnh viết cho Ganache có thể chứa các lối tắt nguy hiểm nếu được dùng lại với khóa sản phẩm.Thông tin xác thực dùng trong phát triển và sản phẩm phải được tách biệt hoàn toàn.Không website, môi trường kiểm thử hay nhân viên hỗ trợ nào cần cụm từ khôi phục thật để tạo blockchain Ganache cục bộ.Các lỗi Ganache thường gặp
Lỗi kết nối có thể xảy ra khi ứng dụng dùng sai máy chủ RPC, cổng hoặc giao thức.Lỗi mã định danh chuỗi có thể xuất hiện khi ví được cấu hình cho một mạng cục bộ khác.Lỗi nonce có thể xuất hiện khi ví ghi nhớ giao dịch từ phiên Ganache trước đã được đặt lại.Lỗi không đủ tiền có thể xảy ra khi địa chỉ được chọn không phải một trong các tài khoản cục bộ đã được cấp tiền.Lỗi hết gas có thể do giới hạn gas giao dịch quá thấp hoặc đường thực thi hợp đồng cần nhiều tài nguyên hơn dự kiến.Lỗi opcode không được hỗ trợ có thể cho thấy hợp đồng được biên dịch cho phiên bản EVM mới hơn phiên bản Ganache đang hỗ trợ.Lỗi fork có thể do endpoint RPC từ xa không khả dụng, dữ liệu block không tương thích, giới hạn tốc độ hoặc hành vi giao thức không được hỗ trợ.Địa chỉ hợp đồng không như dự kiến có thể do khác biệt về người triển khai, nonce, cụm từ ghi nhớ hoặc thứ tự triển khai.Ganache còn sử dụng được không?
Ganache vẫn có thể sử dụng nếu phiên bản đã lưu trữ cài đặt và hoạt động bình thường trong môi trường của nhà phát triển.Phần mềm có thể vẫn hữu ích để tái tạo kết quả kiểm thử của dự án cũ hoặc tìm hiểu quy trình phát triển Ethereum trước đây.Dự án cũ có thể cố định phiên bản Ganache, runtime, compiler và phần phụ thuộc để duy trì khả năng tái lập.Tuy nhiên, việc phần mềm tiếp tục hoạt động không có nghĩa phần mềm còn cập nhật, an toàn hoặc tương thích với Ethereum hiện đại.Các nhóm duy trì ứng dụng có giá trị nên so sánh mọi bộ kiểm thử cũ với kết quả từ một triển khai EVM đang được duy trì tích cực.Không nên tạo thêm sự phụ thuộc dài hạn vào một trình mô phỏng không còn được hỗ trợ trong quá trình phát triển mới.Chuyển đổi khỏi Ganache
Quá trình chuyển đổi nên bắt đầu bằng việc ghi lại chính xác các cài đặt Ganache mà dự án đang sử dụng.Các cài đặt quan trọng gồm cụm từ ghi nhớ, số lượng tài khoản, số dư tài khoản, chain ID, network ID, cổng RPC, chế độ đào block, giới hạn gas, dấu thời gian, đường dẫn cơ sở dữ liệu và cấu hình fork.Nhóm phát triển cần xác định các bài kiểm thử sử dụng phương thức RPC riêng của Ganache để tạo snapshot, thay đổi thời gian, đào block, thay đổi số dư hoặc giả lập tài khoản.Cần cấu hình các tính năng tương đương trong môi trường cục bộ thay thế.Cần kiểm thử tập lệnh triển khai vì việc ước tính gas, biên nhận giao dịch, thông báo lỗi và hoạt động đào block có thể khác nhau.Nên tạo lại các snapshot gas thay vì sao chép kết quả từ Ganache.Cần chạy lại kiểm thử fork trên node hiện tại và phiên bản EVM tương thích với mạng dự kiến triển khai.Quá trình chuyển đổi cuối cùng cần duy trì hoạt động chức năng đồng thời cải thiện khả năng hỗ trợ các quy tắc giao thức Ethereum hiện tại.Phát triển Ethereum cục bộ hiện đại
Hướng dẫn phát triển Ethereum hiện tại khuyến nghị dùng mạng phát triển cục bộ và framework được duy trì để viết, kiểm thử và gỡ lỗi hợp đồng thông minh.Tài liệu chính thức về mạng phát triển Ethereum liệt kê các lựa chọn kiểm thử cục bộ hiện nay.
Nhà phát triển cần hành vi gần với client thực thi thực tế cũng có thể tạo chuỗi phát triển bằng Geth.Hướng dẫn chế độ nhà phát triển Geth giải thích cách khởi chạy mạng Ethereum cục bộ và triển khai hợp đồng lên đó.
Các nhóm nâng cao có thể sử dụng mạng kiểm thử nhiều client có thể cấu hình để kiểm tra kết nối mạng, đồng thuận và khả năng tương thích giữa các client.Môi trường phù hợp nhất phụ thuộc vào ngôn ngữ lập trình, compiler, mục tiêu EVM, framework kiểm thử, yêu cầu fork và mạng triển khai.Ganache có token không?
Ganache không có tiền mã hóa chính thức hoặc token được giao dịch trên thị trường.ETH mô phỏng được dùng bên trong Ganache chỉ là dữ liệu phát triển cục bộ.Không nên cho rằng token mang tên Ganache có liên quan đến phần mềm phát triển đã lưu trữ này.Bất kỳ ai cũng có thể tạo token và đặt tên theo một phần mềm hoặc công ty quen thuộc.Người dùng nên xác định tiền mã hóa bằng blockchain và địa chỉ hợp đồng chính xác, thay vì chỉ dựa vào tên hoặc logo.Tuyên bố rằng ETH thử nghiệm Ganache có thể được mua, rút hoặc đổi thành ETH thật là dấu hiệu cảnh báo khả năng lừa đảo.Câu hỏi thường gặp
Ganache là gì, nói một cách đơn giản?
Ganache là trình mô phỏng blockchain Ethereum cục bộ, dùng để kiểm thử hợp đồng thông minh và ứng dụng phi tập trung mà không tốn tiền mã hóa thật.Ganache còn được duy trì không?
Không. Ganache ngừng hoạt động năm 2023 và kho mã nguồn công khai được lưu trữ vào năm 2024.Còn có thể cài đặt Ganache không?
Các gói đã lưu trữ vẫn có thể cài đặt trong môi trường tương thích, nhưng đây là phần mềm cũ không được hỗ trợ.Ganache có phải blockchain tiền mã hóa thật không?
Ganache quản lý block, giao dịch, tài khoản và hợp đồng cục bộ, nhưng không phải mạng tiền mã hóa công khai phi tập trung.Ganache có sử dụng ETH thật không?
Không. Tài khoản Ganache dùng ETH mô phỏng, chỉ có giá trị trong blockchain phát triển cục bộ.Có thể gửi ETH Ganache lên Ethereum mainnet không?
Không. Số dư Ganache cục bộ không tồn tại trên Ethereum mainnet và không thể rút lên đó.Ganache có token chính thức không?
Không. Ganache là phần mềm phát triển và không có tiền mã hóa chính thức được giao dịch trên thị trường.Ví có thể kết nối với Ganache không?
Có. Ví tương thích với Ethereum có thể kết nối bằng endpoint RPC Ganache và cấu hình chuỗi cục bộ chính xác.Ganache có thể triển khai hợp đồng thông minh Solidity không?
Có. Hợp đồng Solidity đã biên dịch có thể được triển khai và thực thi trên EVM cục bộ của Ganache.Ganache có thể kiểm thử token và NFT không?
Có. Nhà phát triển có thể triển khai và kiểm thử việc chuyển token cục bộ, phê duyệt, mint, burn, quyền sở hữu và logic cấp quyền.Ganache CLI là gì?
Ganache CLI là phiên bản dòng lệnh của trình mô phỏng blockchain cục bộ.Giao diện đồ họa Ganache là gì?
Đây là ứng dụng desktop hiển thị trực quan tài khoản, block, giao dịch, hợp đồng, sự kiện và cài đặt cấu hình.Workspace Ganache là gì?
Workspace là cấu hình Ganache được lưu, bao gồm cài đặt blockchain cục bộ, tài khoản, hoạt động đào block và dự án.Snapshot Ganache là gì?
Snapshot ghi lại trạng thái blockchain cục bộ để bài kiểm thử có thể hoàn nguyên về cùng điểm bắt đầu sau đó.Ganache có thể thay đổi thời gian blockchain không?
Có. Các phương thức phát triển của Ganache có thể tăng thời gian và thay đổi dấu thời gian block cục bộ để kiểm thử.Fork Ganache là gì?
Fork Ganache tạo blockchain cục bộ dựa trên trạng thái tài khoản và hợp đồng được sao chép từ một block mạng công khai được chọn.Giao dịch trên fork Ganache có ảnh hưởng đến mạng công khai không?
Không. Giao dịch thực hiện sau khi fork vẫn nằm trong trình mô phỏng cục bộ.Ganache có thể giả lập địa chỉ công khai không?
Ganache có thể mô phỏng giao dịch cục bộ từ các địa chỉ được chọn, nhưng không tiết lộ khóa riêng tư hay cấp quyền kiểm soát tài sản thật.Ganache có tính gas không?
Có. Ganache mô phỏng lượng gas sử dụng và phí theo quy tắc EVM mà phiên bản đã lưu trữ triển khai.Ước tính gas của Ganache có chính xác với Ethereum hiện tại không?
Không nhất thiết, vì phần mềm có thể không hỗ trợ các lần nâng cấp Ethereum mới hơn và đầu ra compiler hiện đại.Tại sao Ganache báo opcode không được hỗ trợ?
Hợp đồng có thể nhắm đến phiên bản EVM chứa chỉ thị mà phiên bản Ganache đã cài đặt chưa triển khai.Ganache có giống Ethereum mainnet không?
Không. Mainnet là mạng công khai phi tập trung với tài sản thật, còn Ganache do một nhà phát triển cục bộ kiểm soát.Ganache có giống testnet công khai không?
Không. Testnet công khai được nhiều người tham gia dùng chung, còn chuỗi Ganache thông thường chạy riêng trên một hệ thống phát triển.Có thể dùng Ganache mà không cần internet không?
Blockchain Ganache cục bộ cơ bản có thể chạy ngoại tuyến, còn fork mạng cần truy cập node từ xa.Ganache có an toàn cho môi trường sản phẩm không?
Không. Khóa thử nghiệm bị lộ, lịch sử có thể chỉnh sửa, phương thức RPC dành cho phát triển và tình trạng không được hỗ trợ khiến Ganache không phù hợp để lưu ký tài sản trong môi trường sản phẩm.Có nên nhập cụm từ khôi phục thật vào Ganache không?
Không. Không bao giờ dùng cụm từ khôi phục thật hoặc khóa riêng tư sản phẩm trong trình mô phỏng phát triển cục bộ.Dự án cũ có thể tiếp tục dùng Ganache không?
Dự án có thể giữ lại một phiên bản cố định để kiểm thử lịch sử, nhưng nên chuyển sang môi trường được duy trì.Tại sao nhà phát triển nên chuyển đổi khỏi Ganache?
Việc chuyển đổi giúp hỗ trợ giao thức hiện tại, duy trì phần phụ thuộc, sửa lỗi bảo mật và tương thích với đầu ra Solidity hiện đại.Vượt qua kiểm thử Ganache có chứng minh hợp đồng an toàn không?
Không. Kiểm thử cục bộ không thể thay thế kiểm thử đối kháng, tích hợp với mạng hiện tại, đánh giá mã hoặc kiểm toán hợp đồng thông minh độc lập.Kết luận
Ganache là trình mô phỏng blockchain cục bộ có ý nghĩa quan trọng trong lịch sử, từng giúp nhà phát triển Ethereum xây dựng và kiểm thử hợp đồng thông minh nhanh chóng.Ganache cung cấp tài khoản đã được cấp tiền, khóa xác định, đào block tức thì, snapshot, điều khiển thời gian, tính gas cục bộ, fork mạng và giả lập tài khoản.ETH mô phỏng và token chỉ tồn tại bên trong blockchain cục bộ, không có giá trị thị trường thực tế.Ganache khác Ethereum mainnet vì một nhà phát triển kiểm soát tài khoản, hoạt động tạo block, lịch sử và điều kiện mạng.Ganache cũng khác testnet công khai vì trạng thái thường riêng tư, dễ dự đoán và dễ đặt lại.Ganache chính thức ngừng hoạt động năm 2023 và kho mã nguồn chuyển sang chế độ chỉ đọc năm 2024.Các phiên bản đã lưu trữ vẫn có thể hữu ích để duy trì dự án cũ, nhưng không nên kỳ vọng chúng hỗ trợ các lần nâng cấp Ethereum hoặc hoạt động compiler hiện tại.Nhà phát triển không bao giờ nên dùng khóa riêng tư thật, mở máy chủ RPC Ganache công khai hoặc xem việc kiểm thử cục bộ thành công là bằng chứng về bảo mật trong môi trường sản phẩm.Dự án chuyển khỏi Ganache nên duy trì các cài đặt tài khoản, chuỗi, đào block, snapshot, dấu thời gian, RPC, gas và fork trong môi trường thay thế được duy trì.Nên xem Ganache là hạ tầng phát triển Ethereum cũ, với các khái niệm kiểm thử vẫn tiếp tục ảnh hưởng đến những công cụ blockchain cục bộ hiện đại.Có thể bạn cũng thích
WhatsMiner M30S++
Tên miền Web3
Dự án Web3
HOT
Tiền mã hoá thịnh hành hiện nay đang thu hút sự chú ý đáng kể của thị trường
TOP KL
Tiền mã hoá có khối lượng giao dịch cao nhất
Mới được thêm vào
Tiền mã hoá được niêm yết gần đây có thể giao dịch

