21 Th7

Quá trình review code Bitcoin diễn ra như thế nào?

Vào ngày 19 tháng 6, nhà phát triển Chaincode – John Newbery đã tập hợp một nhóm các nhà phát triển để kiểm tra một thay đổi được đề xuất đối với mã Bitcoin (Bitcoin Code).

Diễn ra thông qua Internet Relay Chat (IRC), họ bàn về việc liệu sự thay đổi này có giúp ngăn chặn nhóm thợ mỏ lừa đảo tăng tốc độ tạo ra khối Bitcoin hay không. Đây là vấn đề tích cực giúp hạn chế các vấn đề liên quan đến rủi ro bảo mật hoặc tác động bất lợi.

Mục tiêu của Newbery là truyền lại những gì mà anh ấy biết về việc review code Bitcoin.

Đây có phải là thời gian để tiến hành một thay đổi vững chắc?

Chuyên gia Newbery viết, khi giải thích về các vectơ tấn công:

“Chúng ta có thể khai thác điều này bằng cách đẩy khối điều chỉnh độ khó (difficult) trong tương lai, và sau đó kéo khối tiếp theo trở lại hiện tại.”

Nhưng thực tế là Newbery thậm chí đang tổ chức các phiên họp như thế này và đây có thể được xem là dấu hiệu cho thấy sự trưởng thành của cộng đồng các nhà phát triển Bitcoin, vì đây là ví dụ về cách mà các lập trình viên hàng đầu của dự án đã làm việc chăm chỉ để dự án trở nên toàn diện hơn. Trước đó, quá trình xem xét mã code đã chưa từng được thảo luận cởi mở và chuyên sâu như vậy.

Newbery đã thành lập Câu lạc bộ đánh giá Bitcoin Core (Bitcoin Core Review Club)để cung cấp cho các lập trình viên lời khuyên về cách phát hiện ra, xem xét một thay đổi và xác định xem nó có lợi cho thị trường tiền điện tử hay không. Biên bản cuộc họp hiện được đăng trên trang web mỗi tuần.

Điều này có thể là do Bitcoin Code là mã nguồn mở trên GitHub và bất kì ai có kết nối internet đều có thể truy cập – hoặc thậm chí thay đổi. Quá trình này đã thúc đẩy dự án từ những người viết code từng được gọi là “monolithic blob” của YouTube đến phần mềm dễ dàng hơn dành cho các nhà phát triển với ít lỗi nghiêm trọng hơn. Mọi người không ngừng cố gắng để cải thiện nó, với mục tiêu cuối cùng là khiến cho nó trở thành một cơ sở code xứng đáng cho tương lai của tiền tệ.

Vì vậy, câu lạc bộ trên cũng có thể là một trong những người đóng góp cho code Bitcoin. Không giống như mã độc quyền, bất cứ ai cũng có thể nhìn thấy và sử dụng loại code này – thứ được gọi là “mã nguồn mở”.

Một lý do mà Bitcoin còn được gọi là tiền có thể lập trình được, vì không giống như các loại tiền kỹ thuật số khác, bất kỳ ai trên thế giới có kiến thức phù hợp đều có thể thử thêm các code tính năng mới vào tiền. Một trong những cách để tìm hiểu cơ sở code là xem xét và kiểm tra các code mà lập trình viên đưa ra, để đảm bảo nó thực sự hoạt động và không mắc lỗi hoặc – trường hợp thực tế không may – vô tình chia đôi mạng lưới Bitcoin.

Nhưng qua các trang code và hàng trăm thay đổi được đề xuất, thật khó để biết bắt đầu từ đâu.

Trang web của câu lạc bộ giải thích:

“Câu lạc bộ IRC này dành cho những người muốn giúp xem xét Bitcoin Core pull request – (Một dạng tính năng trên Github) nhưng tìm thấy quy trình này quá đáng sợ”.

“Đánh giá và thử nghiệm các pull request là cách tốt nhất để bắt đầu đóng góp cho Bitcoin Core, nhưng rất khó để biết bắt đầu từ đâu. Có hàng trăm pull request khác nhau, rất nhiều trong số chúng yêu cầu kiến thức trong ngữ cảnh nhất định và những người đóng góp và đánh giá thường sử dụng thuật ngữ không mấy quen thuộc.”

Như vậy, trong khi bất cứ ai cũng có thể nhìn thấy hoặc thay đổi code của loại tiền kỹ thuật số này, nhưng để làm điều đó thật sự không dễ dàng. Bạn cần phải có kiến thức và thực hành để có thể xem xét chúng.

Quá trình đó diễn ra như sau:

Bất cứ ai cũng có thể làm được

Để bắt đầu, người dùng có thể truy cập GitHub – trang web lưu trữ tất cả các loại dự án mã nguồn mở. Có một ứng dụng dành riêng cho Bitcoin Core, triển khai phần mềm bitcoin cơ bản mà hầu hết người dùng sử dụng.

Bạn có thể nhận thấy rằng có rất nhiều thứ trên GitHub, nhưng việc xem xét lại code về cơ bản là xem xét các pull request – tính năng chứa một loạt các thay đổi mà các nhà phát triển trên toàn bộ hệ sinh thái đã gửi đến để xem xét.

Nói cách khác, có 300 thay đổi mà chưa được xem xét đầy đủ để được chính thức thêm vào cơ sở mã code, từ việc làm cho tài liệu mô tả code dễ đọc hơn đến cải thiện hiệu suất hoạt động của bitcoin.

Tại thời điểm này, các nhà phát triển đang cố gắng quyết định xem liệu những thay đổi này có nên được phê duyệt hay không. Vấn đề là có rất ít nhà phát triển có đủ kinh nghiệm xem xét thay đổi code để xác định xem chúng có nên được chính thức thêm vào cơ sở code hay không. Do đó, một người đóng góp cho Bitcoin Core đã từng mô tả danh sách pull request như nghĩa địa của những ý tưởng hay.

Đó là lý do tại sao Newbery đang cố gắng giúp đỡ trong việc tiến hành quá trình này.

Vì vậy, một người thực sự xem xét các thay đổi này như thế nào? Như Newbery mô tả trên trang web của câu lạc bộ, có một vài bước quan trọng để bắt đầu, như xem qua phần “đóng góp cho hướng dẫn Bitcoin Core”, và sửa lại C ++, ngôn ngữ lập trình Bitcoin Core được viết.

Việc tiếp theo chỉ đơn giản là chọn một thay đổi để xem xét. Với hơn 300 pull request, nên bắt đầu từ đâu? Lựa chọn tốt nhất cho những người không biết về cơ sở code là những thay đổi được dán nhãn cụ thể là “những vấn đề tốt đầu tiên”.

Khi quá trình sơ bộ kết thúc, nhà phát triển cần phải sao chép kho lưu trữ, hoặc sử dụng git để tạo một bản sao của cơ sở mã code vào máy tính của họ để họ có thể kiểm tra xem sự thay đổi có hoạt động theo kế hoạch không.

Chỉ cần một lệnh đơn giản để sao chép toàn bộ cơ sở code vào máy tính.

Từ đó, bạn có thể xem lại pull request. Các nhà phát triển cho biết nên chạy tất cả các thử nghiệm trên hệ thống, để đảm bảo việc thay đổi mã code không vô tình trùng với một đoạn code khác, sau đó chuyển sang xem xét phần còn lại của code.

Đối với người review

Người review cần xem xét gì?

Đầu tiên, có những mối quan tâm đặc biệt. Xác định xem liệu thay đổi mới – đặc biệt là thay đổi quan trọng – về cơ bản có dựa trên sự đồng thuận không, có nghĩa là hầu hết những người đóng góp tích cực sẽ đồng ý nên thay đổi.

Trong một cuộc họp khác của câu lạc bộ, Newbery nói:

“Những suy nghĩ của tôi về việc mở các pull request: không ai nợ bạn một đánh giá. Bất cứ ai đánh giá mã code của bạn đều đang giúp bạn. Nếu bạn tạo một pull request, bạn đang cạnh tranh với các pull request khác.”

“Nếu bạn nghi ngờ về việc người khác nghĩ rằng pull request của bạn sẽ hữu ích như thế nào, hãy hỏi #bitcoin-core-dev hoặc hỏi trực tiếp những người đóng góp khác”, Newbery đã đề cập đến một nhóm IRC khác, nơi các nhà phát triển có thể đặt câu hỏi liên quan đến quá trình phát triển Bitcoin Core.

Điều đó cho thấy rằng, các nhà phát triển không phải lúc nào cũng đồng ý về việc liệu thay đổi có đáng để thêm vào hay không. Nhóm các nhà phát triển tập trung vào các thay đổi về mã code gây tranh cãi trong một tuần. Một số người cho rằng cái xấu vượt trội hơn cái tốt, trong khi những người khác vẫn cho rằng điều đó có thể hữu ích.

Nhưng ngay cả khi có một ý tưởng chung tốt, vẫn còn có những mối quan tâm thứ yếu khác. Có lỗi phát sinh hay không? Liệu việc thay đổi mã code có đi kèm với các thử nghiệm đảm bảo rằng nó sẽ hoạt động đúng theo kế hoạch không? Đây là những câu hỏi cần rất nhiều thời gian xem xét để có thể trả lời.

Chẳng hạn, trong cuộc họp ngày 29 tháng 5 (bạn có thể xem biên bản cuộc họp đầy đủ ở đây), các nhà phát triển đã xem qua việc nâng cao hiệu suất cho ví của nút Bitcoin (Bitcoin node).

Một người đóng góp với bút danh Ariard, đã dẫn dắt cuộc họp bằng cách đưa ra quá trình review mà họ đã phát triển. “Trước tiên, tôi đã cố gắng xác định loại PR (Pull request): Tài liệu, loại code, sửa lỗi buf, tính năng mới hoặc thử nghiệm bổ sung. Bởi vì [theo ý kiến của tôi] những điều này sẽ hướng dẫn bạn xác định, bạn sẽ cần bao nhiêu thời gian để review và loại thử nghiệm nào cần thiết”, nhà phát triển cho biết.

Một nhà nhận xét khác chỉ ra rằng họ nhận thấy sự cải thiện chỉ bằng cách kiểm tra xem mã code đã mất bao lâu để hoạt động – trước và sau. “10000 khóa của tôi nhập vào từ 8 phút đến 3 giây xD”, một người dùng khác có tên jb55 cho biết.

Biên bản cuộc họp được thêm vào với nhiều lời khuyên khác về cách sắp xếp hợp lý quá trình này và giúp dễ dàng xem xét hơn, với nhiều cuộc họp sẽ được lên lịch trong tương lai. Một vài phần tiếp theo sẽ được dẫn dắt bởi nhà văn và nhà đóng góp Bitcoin – David Harding. Xem thêm: trâu cày bitcoin

Loading Facebook Comments ...