Tôi đã dành vô số đêm vật lộn với Web3.js, bộ sưu tập các thư viện JavaScript đáng ghét được cho là giúp tương tác với Ethereum "dễ dàng." Chắc chắn, nó cho phép bạn giao tiếp với các nút Ethereum qua HTTP, IPC hoặc WebSocket, nhưng điều họ không nói với bạn là sự thất vọng đi kèm với nó.
Số liệu trên GitHub không biết nói dối – Web3.js đã được fork hơn 4.500 lần và được star hơn 14.000 lần tính đến đầu năm 2023. Nhưng để tôi nói cho bạn, độ phổ biến không đồng nghĩa với sự hoàn hảo. Mỗi lần fork có lẽ đại diện cho một nhà phát triển đã nghĩ, "Tôi có thể sửa cái mớ hỗn độn này!"
Ra đời vào năm 2015 dưới sự giám sát của Quỹ Ethereum, Web3.js đã phát triển vượt ra ngoài Ethereum đến các blockchain tương thích khác. Tuyệt vời trong lý thuyết, nhưng hãy thử gỡ lỗi trên các chuỗi khác nhau và bạn sẽ phát hiện ra một loại địa ngục đặc biệt.
Nỗ lực đầu tiên của tôi trong việc xây dựng một DApp với Web3.js giống như cố gắng lắp ráp đồ nội thất IKEA với hướng dẫn bằng chữ tượng hình. Tài liệu đọc như thể nó được viết bởi ai đó chưa bao giờ thực sự phải triển khai nó trong cuộc sống thực. Thế nhưng, chúng ta đang ở đây, sử dụng nó cho mọi thứ từ các dự án DeFi đến các ứng dụng trò chơi.
Nó có thể làm gì? Vâng, khi nó hoạt động:
Nó quản lý các tài khoản Ethereum và chuyển tiền. Mặc dù đôi khi các giao dịch của bạn chỉ biến mất vào khoảng không.
Bạn có thể đăng ký các sự kiện blockchain - khi chúng không ngắt kết nối ngẫu nhiên.
Nó chuyển đổi giữa các đơn vị tiền tệ như Wei và Ether, điều này thực sự khá tiện lợi vì không ai có thể tính toán 18 chữ số thập phân một cách nhanh chóng.
Tác động của Web3.js không thể phủ nhận - nó đã giúp việc phát triển blockchain trở nên dễ dàng hơn cho các lập trình viên JavaScript, những người có thể hoàn toàn tránh xa lĩnh vực này. Nhưng sự dễ dàng này đi kèm với một cái giá: sự đơn giản hóa quá mức các khái niệm blockchain phức tạp dẫn đến các lỗ hổng bảo mật khi các lập trình viên không hiểu điều gì đang xảy ra bên trong.
Nhìn về phía trước, Web3.js đang tiến vào IoT và các dịch vụ tài chính phức tạp hơn. Tuy nhiên, tôi vẫn hoài nghi – mã nguồn cần được tái cấu trúc nghiêm túc trước khi đảm nhận trách nhiệm nhiều hơn.
Dù có nhiều phàn nàn, tôi vẫn sử dụng Web3.js gần như hàng ngày. Nó giống như người bạn phiền phức mà bằng cách nào đó luôn dẫn bạn đến những bữa tiệc tốt nhất. Chắc chắn, các nền tảng giao dịch không đề cập rõ ràng đến nó, nhưng sau những giao diện bóng bẩy của họ, có lẽ có một lập trình viên khổ sở đang chửi rủa những thông điệp lỗi của Web3.js vào lúc 3 giờ sáng.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Web3.js: Cổng JavaScript tới Ethereum mà tôi yêu ghét
Tôi đã dành vô số đêm vật lộn với Web3.js, bộ sưu tập các thư viện JavaScript đáng ghét được cho là giúp tương tác với Ethereum "dễ dàng." Chắc chắn, nó cho phép bạn giao tiếp với các nút Ethereum qua HTTP, IPC hoặc WebSocket, nhưng điều họ không nói với bạn là sự thất vọng đi kèm với nó.
Số liệu trên GitHub không biết nói dối – Web3.js đã được fork hơn 4.500 lần và được star hơn 14.000 lần tính đến đầu năm 2023. Nhưng để tôi nói cho bạn, độ phổ biến không đồng nghĩa với sự hoàn hảo. Mỗi lần fork có lẽ đại diện cho một nhà phát triển đã nghĩ, "Tôi có thể sửa cái mớ hỗn độn này!"
Ra đời vào năm 2015 dưới sự giám sát của Quỹ Ethereum, Web3.js đã phát triển vượt ra ngoài Ethereum đến các blockchain tương thích khác. Tuyệt vời trong lý thuyết, nhưng hãy thử gỡ lỗi trên các chuỗi khác nhau và bạn sẽ phát hiện ra một loại địa ngục đặc biệt.
Nỗ lực đầu tiên của tôi trong việc xây dựng một DApp với Web3.js giống như cố gắng lắp ráp đồ nội thất IKEA với hướng dẫn bằng chữ tượng hình. Tài liệu đọc như thể nó được viết bởi ai đó chưa bao giờ thực sự phải triển khai nó trong cuộc sống thực. Thế nhưng, chúng ta đang ở đây, sử dụng nó cho mọi thứ từ các dự án DeFi đến các ứng dụng trò chơi.
Nó có thể làm gì? Vâng, khi nó hoạt động:
Nó quản lý các tài khoản Ethereum và chuyển tiền. Mặc dù đôi khi các giao dịch của bạn chỉ biến mất vào khoảng không.
Bạn có thể đăng ký các sự kiện blockchain - khi chúng không ngắt kết nối ngẫu nhiên.
Nó chuyển đổi giữa các đơn vị tiền tệ như Wei và Ether, điều này thực sự khá tiện lợi vì không ai có thể tính toán 18 chữ số thập phân một cách nhanh chóng.
Tác động của Web3.js không thể phủ nhận - nó đã giúp việc phát triển blockchain trở nên dễ dàng hơn cho các lập trình viên JavaScript, những người có thể hoàn toàn tránh xa lĩnh vực này. Nhưng sự dễ dàng này đi kèm với một cái giá: sự đơn giản hóa quá mức các khái niệm blockchain phức tạp dẫn đến các lỗ hổng bảo mật khi các lập trình viên không hiểu điều gì đang xảy ra bên trong.
Nhìn về phía trước, Web3.js đang tiến vào IoT và các dịch vụ tài chính phức tạp hơn. Tuy nhiên, tôi vẫn hoài nghi – mã nguồn cần được tái cấu trúc nghiêm túc trước khi đảm nhận trách nhiệm nhiều hơn.
Dù có nhiều phàn nàn, tôi vẫn sử dụng Web3.js gần như hàng ngày. Nó giống như người bạn phiền phức mà bằng cách nào đó luôn dẫn bạn đến những bữa tiệc tốt nhất. Chắc chắn, các nền tảng giao dịch không đề cập rõ ràng đến nó, nhưng sau những giao diện bóng bẩy của họ, có lẽ có một lập trình viên khổ sở đang chửi rủa những thông điệp lỗi của Web3.js vào lúc 3 giờ sáng.