Hành trình của tôi để trở thành người xác thực trên Ethereum 2.0, Phần 2

blog 1Tin tứcDevelopersEnterpriseBlockchain ExplainedEvents and ConferencePressBản tin

Theo dõi bản tin của chúng tôi.

Địa chỉ email

Chúng tôi tôn trọng quyền riêng tư của bạn

Trang chủBlogDevelopers

Hành trình của tôi để trở thành người xác thực trên Ethereum 2.0, Phần 2

Bạn nên cân nhắc một số điều gì khi chọn phần cứng và phần mềm để chạy ứng dụng khách trình xác thực Ethereum 2.0? Bởi Coogan Brennan Ngày 5 tháng 12 năm 2020Đăng vào ngày 5 tháng 12 năm 2020

Hành trình của tôi để trở thành người xác thực trên Ethereum 2 0 Phần 2

Lưu ý: Bạn vẫn có thể trở thành người xác thực trên mạng Ethereum 2.0! Sẽ có thời gian chờ để được kích hoạt làm trình xác thực – kể từ ngày 4 tháng 12 năm 2020, thời gian chờ là khoảng 9,9 ngày. Xem các bước để đặt cược trong Phần 1 của loạt bài này.

  1. Tuyên bố từ chối trách nhiệm
  2. Giới thiệu
  3. Cân nhắc cấu hình trình xác thực
  1. Phần cứng kiểm tra trong tương lai
  2. Chạy hay không chạy ứng dụng khách Eth1?
  3. Lưu trữ ảo so với lưu trữ cục bộ
  4. Sự lựa chọn của Khách hàng Eth2 và Tránh các hình phạt
  • Thiết lập phiên bản AWS
    1. Hệ điều hành
    2. Định giá
    3. Lưu trữ
    4. Các cổng
    5. Phím SSH và Khởi chạy phiên bản
    6. Cài đặt Teku
      1. Yêu cầu
      2. Cài đặt nhị phân
      3. Tạo người dùng không phải root
      4. Tạo dịch vụ systemd
      5. Phóng
      6. Tuyên bố từ chối trách nhiệm

        Đây là bài đăng mà tôi đang viết với tư cách là một nhân viên của ConsenSys và một người nào đó đang có kế hoạch tham gia vào chuỗi beacon. Tuyên bố trước đây có nghĩa là tôi ưu tiên các sản phẩm của ConsenSys (Các sản phẩm của ConsenSys thường tốt nhất trong phân loại cho Ethereum và tôi cũng có quyền truy cập vào các nhóm kỹ sư có thể giúp tôi trả lời các câu hỏi và khắc phục sự cố). Tuyên bố thứ hai có nghĩa là tôi đang tối ưu hóa chi phí và dễ sử dụng: Tôi không có hàng nghìn ETH để mang lại phần thưởng đáng kể, vì vậy tôi đang thực hiện một số lối tắt. Đây là những quyết định tôi đã đưa ra để đặt cược trên Ethereum 2.0 đơn giản và dễ tiếp cận nhất cho các cá nhân nhưng đi kèm với sự đánh đổi đối với sự phân quyền và quyền riêng tư. Tuy nhiên, bạn có thể làm theo các nét chính của hướng dẫn bên dưới và đưa ra các lựa chọn khác nhau. Trên thực tế, nếu bạn có thể làm được điều đó, tôi sẽ khuyến khích bạn! 

        Cuối cùng, việc đặt cược trong Ethereum 2.0 mang tính thử nghiệm cao và liên quan đến cam kết lâu dài (tôi đang phân bổ ba năm). Vui lòng không tham gia nếu bạn không cảm thấy thoải mái với mức độ rủi ro cao với một cái gì đó vẫn đang được phát triển. Nếu bạn không chắc chắn về việc mình có nên đặt cược hay không, hãy tham gia ConsenSys bất hòa và hỏi trong kênh # teku-public. 

        Giới thiệu

        Trong bài trước, chúng ta đã thảo luận về lý do triển khai Ethereum 2.0 và hướng dẫn cách đặt 32 ETH trong Hợp đồng gửi tiền qua mạng chính Ethereum 1.0. Chúng tôi đã đề cập đến việc tạo ra khóa và cách quy trình đặt cược vào Bệ phóng liên kết Ethereum 1.0 đến 2.0.

        Vào ngày 23 tháng 11, số lượng ETH đặt cược tối thiểu để khởi chạy Ethereum 2.0 — khoảng 524.288 — đã được đáp ứng. Mọi người có thể tiếp tục đặt cược vào hợp đồng và số lượng người xác nhận đã tăng lên hơn 33.000 người kể từ ngày 4 tháng 12.

        Aaron Davis của MetaMask chia sẻ suy nghĩ của mình trong kênh Stack nội bộ của ConsenSys 

        Mặc dù vô cùng thú vị khi được đưa vào khối Genesis với tư cách là trình xác thực, vài giây sau, tôi có trải nghiệm tương tự với đồng nghiệp Aaron Davis trong kênh đặt cược nội bộ của ConsenSys: Tôi đã đăng ký nhiệm vụ điên rồ nào vậy? May mắn thay, tôi được tiếp cận với những người cực kỳ xuất sắc và kỹ thuật đủ từ thiện để cung cấp cho rube này một số mẹo, gợi ý và thông tin chi tiết về việc vận hành cơ sở hạ tầng đặt cược. Tôi hy vọng có thể chuyển một phần nhỏ lời khuyên có giá trị đó ở đây cho bất kỳ bên quan tâm nào khác.


        Đó là nội dung phần đầu tiên của bài viết này: Một số điều bạn nên cân nhắc khi chọn phần cứng và phần mềm để chạy ứng dụng khách trình xác thực Ethereum 2.0 là gì? Phần thứ hai sẽ giới thiệu về sự kết hợp phần cứng / phần mềm cụ thể mà tôi đã chọn cho ứng dụng khách trình xác thực của mình. Các lựa chọn bạn thực hiện cho cấu hình của mình sẽ phụ thuộc vào nguồn lực, khuynh hướng cá nhân và năng lực kỹ thuật của bạn. Tôi sẽ cố gắng hết sức để nêu bật cách thành kiến ​​cá nhân và hoàn cảnh đã thông báo cho các lựa chọn của tôi.

        Cuối cùng, trước khi chúng ta đi sâu vào nó, tôi muốn nhắc lại rằng những bài đăng này gần giống như các bài viết nhật ký cho kinh nghiệm của tôi khi đặt cược 32 ETH (mặc dù các bài viết trên tạp chí có nhiều bổ trợ kỹ thuật). Do đó, tôi có thể thay đổi cách tiếp cận của mình một chút khi chuỗi beacon tiến triển. Ví dụ, tôi đã nghĩ rằng mình chắc chắn sẽ sử dụng AWS. Như bạn sẽ đọc bên dưới, bây giờ tôi đang xem xét lại điều đó. Tôi cũng sẽ nói rất rõ ràng về yếu tố tài chính của việc đặt cược. Đặt cược là một cách để hỗ trợ hệ sinh thái Ethereum, nhưng để sử dụng công cộng bền vững, nó cũng nên được tiếp cận và có thể đối với những người có ETH để làm như vậy. 

        Phần cứng kiểm tra trong tương lai

        Các yêu cầu cơ bản để chạy trình xác nhận ngày nay là tương đối dễ đáp ứng. Mara Schmiedt và Collin Meyers ’ Hướng dẫn trình xác thực trên Bankless có một bản tóm tắt tốt các yêu cầu tối thiểu. Khía cạnh thách thức nhất của việc xác định thiết bị xác thực Ethereum 2.0 là cân bằng nhu cầu hiện tại của Beacon Chain Phase 0 với bất kỳ nhu cầu nào hiện chưa được biết đến trong tương lai khi quá trình phát triển tiếp tục diễn ra. (Đây không phải là vấn đề đáng lo ngại nếu bạn cảm thấy thoải mái khi duy trì việc theo dõi chặt chẽ trình xác thực của mình và có thể giải quyết các thay đổi một cách nhanh chóng và dễ dàng) 

        Ben Edgington, Giám đốc dự án Teku và nhà xuất bản của Eth2.news, đã cung cấp cho tôi một số trường hợp cạnh trong đó mạng có thể yêu cầu nhiều ứng dụng khách trình xác thực hơn. Trong ngắn hạn, mối quan tâm lớn nhất sẽ là sự cố máy chủ thời gian Medalla, trong đó một lỗi và bản sửa lỗi tiếp theo trong ứng dụng khách Prysm đã tạm dừng quá trình hoàn thiện trên testnet (nói một cách đại khái, mạng không thể “tạo khối”). Vì không có điểm cuối cùng trên mạng (không có “khối được xác nhận”), trình xác thực phải giữ nhiều giao dịch hơn trong RAM của họ so với bình thường. 

        Các máy có RAM 8GB — lẽ ra là quá đủ trong những trường hợp bình thường — bắt đầu gặp phải sự cố “hết bộ nhớ” có thể dẫn đến việc bị cắt. Mức tăng đột biến như thế này, mặc dù bất thường, không nằm ngoài câu hỏi đối với mạng chính Giai đoạn 0.

        Sự mơ hồ về cấu hình trong tương lai cho mạng là sự hợp nhất của Ethereum 1.0 và 2.0 và sự ra đời của sharding. Chúng tôi vẫn chưa biết khi nào những hợp nhất đó sẽ xảy ra hoặc chính xác những gì họ sẽ yêu cầu. Tôi muốn có một xương sống CPU mạnh mẽ đi vào Giai đoạn 0 (4 lõi ảo, RAM 16 GB với SSD 100 GB) và sau đó tập trung sự chú ý của tôi cho các điều chỉnh trong tương lai xung quanh không gian lưu trữ (để lại chỗ trống ở đây). Xin lưu ý rằng điều này có thể trở nên quá mức cần thiết và ăn hết phần thưởng đặt cược.

        Đó là những “ẩn số đã biết” của tương lai, hãy thảo luận về các điểm quyết định cấu hình chính cho trình xác thực ngay hôm nay.

        Chạy hay không chạy ứng dụng khách Eth1?

        Đó là một nghi thức của đoạn văn mà tôi cố gắng bắt các sinh viên bootcamp của chúng tôi thực hiện thường xuyên nhất có thể: đồng bộ hóa một ứng dụng khách Ethereum 1.0. Đó là một bí mật mở rằng việc thực sự lưu trữ một nút Ethereum 1.0 “đầy đủ” là một hành động của tình yêu chứ không phải là một giải pháp khó xử của Prisoner’s Dilemma. “Đầy đủ” phải được đặt trong dấu ngoặc kép vì ngay cả các nhà phát triển cốt lõi của Ethereum cũng gặp khó khăn khi đồng ý về định nghĩa “nút đầy đủ” thực sự có nghĩa là gì.

        Tất cả chúng ta có thể đồng ý một điều: Cần nhiều thời gian và dung lượng hơn để đồng bộ hóa một ứng dụng khách Ethereum 1.0 hơn bạn tưởng tượng. Trình xác thực của chúng tôi cần có cách truy vấn cơ sở dữ liệu mạng Ethereum 1.0 (chúng ta sẽ tìm hiểu lý do sau một chút). Nếu muốn tiết kiệm dung lượng và đồng bộ hóa cục bộ, bạn có thể sử dụng điểm cuối Infura, có sẵn miễn phí khi đăng ký. 

        Mặc dù điều này giúp tiết kiệm đáng kể dung lượng lưu trữ và mối quan tâm về hậu cần, nhưng nó vẫn hy sinh một lượng phân quyền nhất định cho mạng Eth1 và Eth2 đồng thời. Nếu Infura đi xuống, điều này cực kỳ hiếm nhưng xảy ra, điều đó sẽ gây ra hiệu ứng gợn sóng trên các trình xác thực Ethereum 2.0 sử dụng nó cho điểm cuối Ethereum 1.0 của họ. Một cái gì đó để xem xét!

        (Chỉ cần nói rõ: khó khăn của việc đồng bộ hóa một nút đầy đủ Ethereum liên quan đến bản chất của trạng thái thế giới Ethereum, chứ không phải với các nhà phát triển lõi Ethereum 1.0, những người đã thực hiện một công việc đáng kinh ngạc khi giải quyết vấn đề cực kỳ khó khăn này.)

        Lưu trữ ảo so với cục bộ

        Cân nhắc tiếp theo đối với tôi là lưu trữ một nút xác thực cục bộ (tại nhà của tôi) hoặc ảo (trên một nhà cung cấp dịch vụ ảo như Amazon Web Services (AWS), Digital Ocean, v.v.). Như tôi đã đề cập trong phần trước, tôi không tin tưởng bản thân sẽ chạy một nút trình xác thực nhất quán từ nhà, ngay cả trên một máy tính xách tay cũ được cất giữ ở đâu đó. Vụng về và ngốc nghếch, tôi sẽ gạt nó qua hoặc quên nó đi.

        Tôi chọn chạy nút của mình trên AWS vì đó là điều tôi quen thuộc nhất (Tuy nhiên, sau khi trải qua toàn bộ quá trình này, tôi đoán lần thứ hai về quyết định này. Tôi sẽ thảo luận vấn đề này sau). Sự đánh đổi ở đây là sự phân quyền một lần nữa: Nếu AWS gặp sự cố hoặc có bất kỳ vấn đề nào (giống như nó đã làm gần đây), Tôi rất thương xót họ. Nếu có đủ người đang chạy các nút trên AWS, điều đó có thể ảnh hưởng đến mạng Ethereum lớn hơn.

        Mọi người có thể sẽ tự chọn cho cái này. Lưu trữ cục bộ là một loại dự án đặc biệt và không phải ai cũng có thời gian, nguồn lực hoặc cam kết cần thiết. Mặc dù lưu trữ ảo là một lực lượng tập trung, nhưng tôi chọn sử dụng nó do tính năng dễ sử dụng và (hy vọng) được đảm bảo về thời gian hoạt động. 

        Nếu bạn muốn chạy một nút trình xác thực cục bộ, bạn vẫn có thể làm theo hướng chung của hướng dẫn này, Chuỗi hướng dẫn xuất sắc của Somer Esat với các khách hàng khác nhau hoặc là thậm chí đồng bộ hóa Raspberry Pi Model 4B với RAM 8GB với Ethereum trên ARM. (Đồng bộ hóa trên Raspberry Pi vẫn còn rất thử nghiệm và mọi người nên đợi cho đến khi nhóm Ethereum trên ARM xác nhận sự ổn định của nó)

        Sự lựa chọn của Khách hàng Eth2 và Tránh các hình phạt

        Một lựa chọn chính khác là ứng dụng Ethereum 2.0 trong số các khách hàng hiện có: Ngọn hải đăng, ngôi sao dẫn đường, Nimbus, PrysmTeku. Tôi rất thiên vị Teku và không đủ hiểu biết để tranh luận về những điểm tốt hơn của khách hàng. bài viết này là một cái nhìn tổng quan về hiệu suất của khách hàng trên Medalla. (Hãy nhớ rằng Medalla yêu cầu nhiều hơn từ bộ xử lý so với mainnet sẽ làm.)

        Proof of Stake kết hợp các khuyến khích rõ ràng để khuyến khích hành vi đúng đắn trên mạng. Những điều này có hình thức đánh dấu trình xác thực vì đang ngoại tuyến và động thái mạnh mẽ hơn là chặt chém các diễn viên vì thực hiện hành động ác ý chống lại mạng, cố ý hoặc theo cách khác.

        Vấn đề phổ biến nhất sẽ là đảm bảo trình xác thực của bạn có sẵn trên mạng. Điều này có nghĩa là đảm bảo trình xác nhận của bạn đang trực tuyến. Có phương pháp tiếp cận DevOps cho vấn đề này — tạo hệ thống giám sát và cảnh báo để thông báo cho bạn nếu trình xác thực của bạn ngoại tuyến — mà tôi sẽ không đề cập ở đây.

        Nhưng có một cách khác để không khả dụng với mạng và đó là nếu khách hàng của bạn bắt đầu hoạt động sai vì lý do này hay lý do khác. Sau lỗi máy chủ thời gian gây ra sự chậm lại của mạng trên Medalla, các nhà phát triển cốt lõi của Eth2 đã cùng nhau phát triển “[A] định dạng chuẩn để chuyển lịch sử ký của khóa cho phép trình xác thực dễ dàng chuyển đổi giữa các máy khách mà không có nguy cơ ký các thông báo xung đột.” Không phải tất cả các khách hàng đều có biện pháp bảo vệ này, nhưng Teku thì có. Đây là nơi bạn có thể đọc về cách sử dụng Teku’s Slash Protection (chạy theo mặc định) bao gồm việc di chuyển giữa các nút Teku hoặc một nút không phải Teku sang nút Teku.

        Nếu bạn gặp sự cố với ứng dụng khách của mình và cần khởi động lại toàn bộ mạng, bạn cần lưu ý Tính chủ quan yếu. Proof of Work cho phép bất kỳ ai quay lại khối khởi đầu của mạng và xây dựng trạng thái mạng từ đầu một cách đáng tin cậy. Tuy nhiên, Proof of Stake có một lợi ích trong vấn đề đó: Nếu một phần ba trình xác thực mạng tại một điểm thoát nhất định vẫn tiếp tục ký các khối và chứng thực, họ có thể thay đổi trạng thái mạng và cung cấp dữ liệu sai đó cho một nút đồng bộ hóa với mạng nếu các tác nhân độc hại bắt được nút đồng bộ hóa trước khi nút đồng bộ hóa đến nơi người xác thực rút tiền của họ. Bạn có thể đọc thêm về nó ở đây, nhưng câu trả lời ngắn gọn là bạn cần phải có “điểm kiểm tra chủ quan yếu” hoặc tệp trạng thái được mã hóa, về cơ bản là một kho lưu trữ của mạng. Teku cung cấp cờ khởi động cho cả hai.

        Mối quan tâm hình phạt cuối cùng là nghiêm trọng nhất: Chém. Chém gió xảy ra khi kẻ gian làm việc trái với các quy tắc của mạng. Nó khác với việc bị phạt khi ngoại tuyến. Nó đang tích cực hoạt động chống lại mạng bằng cách gửi thông tin trình xác thực xung đột. Có một số tài liệu thực sự tuyệt vời để tìm hiểu thêm về việc chặt chém và cách phòng tránh:

        Bài học kinh nghiệm chính là không chạy một khóa xác thực trên nhiều ứng dụng khách. Rõ ràng đây là điều đã gây ra sự kiện chặt chém đầu tiên từ trước đến nay, xảy ra vào ngày 2 tháng 12. Đã có một số vụ chặt chém kể từ đó! Nếu bạn đang di chuyển từ phiên bản này sang phiên bản khác, hãy kiểm tra bốn lần, bạn sẽ không có hai máy hoạt động từ cùng một khóa:

        Papa Ben nói với nó như thể nó là. Nguồn

        Thông số cấu hình AWS + Infura + Teku Validator

        Thiết lập khối Genesis của tôi:

        Hệ điều hành: Ubuntu Server 20.04 LTS (HVM) (Amazon Web Service)

        Bộ xử lý: Bộ xử lý Intel Xeon Platinum 8000 series, 3,1 GHz. (Dịch vụ web của Amazon)

        Ký ức: 4 lõi ảo, RAM 16GB (Amazon Web Service)

        Lưu trữ: SSD 100GB, 300/300 IOPS (Amazon Web Service)

        Ứng dụng khách Ethereum 1.0: Điểm cuối Infura (bậc miễn phí)

        Ứng dụng khách Ethereum 2.0: Teku

        Xem qua tất cả các cân nhắc ở trên, tôi không chắc về cách tiếp cận tốt nhất để xây dựng thiết lập trình xác thực. Đối với bản thân, tôi muốn chọn một chiếc máy và thường không lo lắng về việc thay đổi nó trong ít nhất hai năm. Điều này giúp tiết kiệm chi phí trình xác thực tổng thể (tôi có thể được giảm giá đáng kể khi tham gia với nhà cung cấp ảo trong một vài năm) và tôi đặc biệt không nhanh nhạy với việc xoay tua máy chủ. Cách tiếp cận kiểm chứng trong tương lai hoặc “vượt quá thông số kỹ thuật” này hy vọng sẽ giúp cuộc sống của tôi trong hai năm tới dễ dàng hơn một chút.

        Ban đầu, tôi tin rằng AWS là nền tảng ảo tốt nhất và đó là dịch vụ tôi sẽ sử dụng cho bài đăng này và bài đăng tiếp theo. Tuy nhiên, sau khi xem qua toàn bộ quá trình, tôi nhận ra AWS có thể quá mức cần thiết đối với từng nhà phát triển. Sức mạnh thực sự của AWS dường như là khả năng tự động mở rộng quy mô để đáp ứng nhu cầu với chi phí cao. Điều này có ý nghĩa kinh tế đối với một dự án quy mô lớn, cấp doanh nghiệp, nhưng Ethereum 2.0 riêng lẻ hiện hành yêu cầu của khách hàng không đòi hỏi khắt khe như vậy.

        Tôi sẽ tiếp tục với AWS nhưng cũng giải trí với tùy chọn chạy một phiên bản trên Digital Ocean, phiên bản này có thể phù hợp hơn cho một nhà phát triển cá nhân. Thông tin thêm về điều đó vào một ngày sau đó.

        Thiết lập tài khoản Infura

        Tôi đang chọn sử dụng Infura làm điểm cuối Ethereum 1.0 của mình. Hiện tại, chuỗi beacon đang theo dõi Hợp đồng tiền gửi trên Ethereum 1.0 để kích hoạt các nhà phân phối mới khi họ đã gửi đúng 32 ETH và gửi chữ ký BLS thích hợp.

        Trong tương lai, chuỗi beacon sẽ bắt đầu thử nghiệm xử lý thêm bằng cách bắt đầu sử dụng thông tin trạng thái từ Ethereum 1.0 để tạo các điểm kiểm tra song song trên chuỗi beacon.

        Như chúng tôi đã đề cập ở trên, có hai cách chính để hiển thị mạng Ethereum 1.0. Một là đồng bộ hóa và tích cực duy trì nút Ethereum 1.0, nút này tạo cơ sở dữ liệu trạng thái Ethereum 1.0 cục bộ. Cách khác là sử dụng một dịch vụ như Infura, cung cấp điểm cuối Ethereum 1.0 dễ dàng, có thể truy cập thông qua HTTPS hoặc WebSockets.

        Đăng ký tài khoản tại đây. Sau khi bạn có tài khoản, hãy nhấp vào biểu tượng Ethereum ở phía bên trái.

        Nhấp vào “Tạo dự án mới” ở góc trên bên phải

        Đặt tên cho dự án của bạn (của tôi là “Eth 2 Validator”) và đi tới “Cài đặt”, đảm bảo rằng điểm cuối mạng của bạn là “Mainnet” và sao chép điểm cuối HTTPS:

        Chúng tôi sẽ sử dụng điều này sau cho lệnh khởi động ứng dụng khách Teku của chúng tôi!

        Thiết lập phiên bản AWS

        Việc thiết lập phiên bản EC2 trên Amazon là quá trình đơn giản. Chúng tôi sẽ có một vài chỉnh sửa ở đây và ở đó để giúp phiên bản ảo của chúng tôi hoạt động tốt với Teku.

        Tạo tài khoản AWS (khác với tài khoản Amazon.com) và đăng nhập vào Bảng điều khiển AWS. Truy cập trang EC2, sẽ trông giống như sau:

        Nhấp vào nút “Khởi chạy phiên bản”. Sau đó, bạn sẽ thấy màn hình sau:

        Hệ điều hành

        Đây là nơi chúng tôi chọn hình ảnh máy (mà tôi nghĩ là một hệ điều hành) mà chúng tôi muốn sử dụng trên phiên bản ảo của mình. Tôi đang chọn Ubuntu Server 20.04, là môi trường Máy chủ dựa trên Linux. Môi trường Ubuntu Server có một vài điểm khác biệt chính về tối ưu hóa so với môi trường Ubuntu Desktop. Sự khác biệt chính cho mục đích của chúng tôi là Ubuntu Server thiếu Giao diện người dùng đồ họa (GUI). Chúng ta đang đi đâu, chỉ có một dòng lệnh! Đưa tôi trở lại những ngày Apple II của tôi.

        Sau khi chọn hệ điều hành của chúng tôi, chúng tôi sau đó chọn loại phiên bản của chúng tôi:

        Tôi thấy thực đơn này khá áp đảo, vì vậy tôi sẽ chia nhỏ nó một chút cho bạn. Ở đây, chúng tôi đang chọn lõi máy tính / sức mạnh RAM / CPU cho máy của mình. Nó là “bộ nhớ thô” hoặc “bộ nhớ hoạt động” của máy và tách biệt với bộ nhớ (ổ cứng) của thiết bị. Hãy coi nó như động cơ của phiên bản ảo của chúng tôi, trên đó chúng tôi sẽ chạy hệ điều hành Ubuntu Server của mình. AWS tách chúng thành các họ cá thể riêng biệt được biểu thị bằng tổ hợp chữ cái / số ở cột ngoài cùng bên trái.

        Các họ ví dụ có cách sắp xếp phần cứng khác nhau cũng giống như các động cơ ô tô khác nhau có cấu hình piston, phích cắm và nhiên liệu khác nhau để đáp ứng các nhu cầu khác nhau. Chúng tôi sẽ tập trung vào hai trong số các họ cá thể “tính toán chung” của chúng, m5 và t3.

        Tôi đang chọn phiên bản m5.xlarge, cung cấp 4 lõi điện toán ảo (vCPU) và RAM 16 GB. Sau khi chạy mạng chính Ethereum 2.0 trong một ngày hoặc lâu hơn, máy của tôi chưa sử dụng quá 4% vCPU có sẵn. Như đã đề cập trong phần “Kiểm chứng tương lai” ở trên, nhu cầu mạng Ethereum 2.0 sẽ chỉ tăng lên. Nhưng trong vài tháng tới, nếu không có bất kỳ đợt đột biến mạng lớn kéo dài nào, tôi rất có thể sẽ ổn với phiên bản m5.large (2 lõi ảo / vCPU, RAM 8GB)

        Những người am hiểu kỹ thuật hơn tôi cũng đã đề xuất phiên bản t3.large như một lựa chọn hợp lý cho Ethereum 2.0. t3.large có 2 vCPU và bộ nhớ 8GB, giống như m5.large, nhưng họ t3 được xây dựng cho hoạt động mạng “dễ bùng nổ” hơn (tăng đột biến trong CPU) hơn là họ m5 được xây dựng để tải CPU nhất quán.

        Định giá

        Điều cuối cùng cần đề cập trước khi chúng ta chuyển sang lưu trữ là giá cả. AWS đắt so với các tùy chọn khác như Digital Ocean. Bạn trả tiền cho CPU (họ phiên bản của bạn) và bộ nhớ (ổ cứng của bạn) riêng biệt dựa trên những gì bạn sử dụng. CPU được trả theo giờ. Vì trình xác thực phải trực tuyến 24 giờ, bạn có thể sử dụng bảng giá bên dưới (từ tháng 12 năm 2020) để thực hiện một số tính toán sơ bộ: 

        Đây là giá theo yêu cầu. AWS cung cấp một cái gì đó được gọi là Định giá Phiên bản dành riêng, trong đó nếu bạn hứa sẽ có một phiên bản ảo từ một năm đến ba năm, bạn có thể được giảm tới 50-60% chi phí trong bảng giá trên. (Cảm ơn Jason Chroman về mẹo này!)

        Từ trang chủ EC2, nhấp vào “Phiên bản dự trữ” trên menu bên trái, được hiển thị bên dưới:

        Nhấp vào “Mua phiên bản đặt trước”:

        Trong menu bật lên, hãy nhập chi tiết loại đối tượng và khoảng thời gian mong muốn để xem giá (Tôi đang chọn m5.xlarge và thời hạn 36 tháng):

        Nhấp vào “Tìm kiếm” và xem các tùy chọn giá:

        Tôi tin rằng có một khoản chiết khấu giá đáng kể, hơn 50%, nhưng tôi đã bị khóa trong ba năm. Sau khi bạn mua Phiên bản dành riêng, AWS sau đó sẽ áp dụng nó cho một hộp ảo hiện có hoặc sẽ áp dụng nó khi nó được khởi chạy. Hãy nhớ điều này KHÔNG bao gồm dung lượng lưu trữ (ổ cứng). 

        Lưu ý: Tôi chưa làm điều này vì tôi chưa thuyết phục AWS là lựa chọn tốt nhất cho một cá nhân đặt cược từ một đến ba nút trình xác thực Ethereum 2.0. Tôi đang chạy một phiên bản với định giá theo yêu cầu để xem nó diễn ra như thế nào trước khi cam kết. 

        Lưu trữ

        Quay trở lại quy trình khởi chạy phiên bản của chúng tôi, chúng tôi sẽ chuyển sang tab “Thêm bộ nhớ”

        Những người kỹ thuật giỏi mà tôi đã tư vấn đã đề xuất dung lượng lưu trữ là 100GB SSD General Purpose. Lưu trữ thường không phải là một nút thắt cổ chai với các máy khách Eth2. Tuy nhiên, đây là không có chạy một ứng dụng khách Eth1 đầy đủ. Đối với bộ nhớ Eth1, ước tính thận trọng sẽ là khoảng 1TB. Hãy chắc chắn tính đến điều này nếu bạn không sử dụng Infura.

        Tôi không biết đơn vị trên cột IOPS trong hình trên, nhưng đó là đầu vào-đầu ra cho ổ cứng giao tiếp với CPU. Đây là một nút cổ chai cổ điển cho việc đồng bộ hóa nút Eth1 đầy đủ. Nếu bạn đang muốn đồng bộ hóa một ứng dụng khách Eth1 đầy đủ trên máy này và bạn đang gặp sự cố, thì đây có thể là một nơi để xem xét.

        Các cổng

        Bỏ qua “Thêm thẻ”, chuyển sang “Định cấu hình nhóm bảo mật”. Đây là các lỗ mở khác nhau được tạo cho các loại giao tiếp đến và đi khác nhau với phiên bản.

        AWS tự động mở cổng SSH truyền thống, vì đó là cách chính mà chúng tôi sẽ tương tác với phiên bản. Coin CashewCủa Somer Esat các hướng dẫn tuyệt vời đều khuyên bạn nên tắt quyền truy cập bằng mật khẩu cho SSH, nhưng chúng tôi sẽ thấy khi chúng tôi khởi chạy phiên bản không phải là tùy chọn mặc định cho AWS. Tuy nhiên, tốt nhất là nên ngẫu nhiên hóa cổng SSH của bạn thành một số trong khoảng 1024-65535. Điều này là để ngăn chặn các tác nhân độc hại quét mạng qua cổng SSH tiêu chuẩn. Xem cách bảo mật cổng SSH của bạn nói chung đây và đặc biệt cho AWS đây.

        Chúng tôi phải thêm hai quy tắc bảo mật để phù hợp với ứng dụng khách Teku và nó liên quan đến giao tiếp ngang hàng. Mạng lưới chuỗi khối được phân cấp theo nghĩa là các nút nói chuyện trực tiếp với nhau. Thay vì tham khảo ý kiến ​​của một nút trung tâm, một nút riêng lẻ sẽ phát triển và duy trì sự hiểu biết về trạng thái mạng bằng cách “nói chuyện phiếm” với nhiều nút. Điều này có nghĩa là khi một khách hàng bắt tay với một khách hàng khác, họ sẽ trao đổi thông tin về mạng. Thực hiện đủ số lần với các nút khác nhau, thông tin sẽ truyền khắp mạng. Hiện tại, nút Trình xác thực Eth2 của tôi có 74 đồng nghiệp mà nó đang trò chuyện.

        Teku giao tiếp với các nút khác trên cổng 9000, vì vậy chúng tôi sẽ mở nó cho UDP và TCP, hai loại giao thức giao tiếp khác nhau. 

        Sau đó, nó sẽ trông giống như sau:

        Phím SSH và Khởi chạy phiên bản

        Cuối cùng, hãy chuyển đến phần “Đánh giá và khởi chạy”, tổng quan về các lựa chọn đã thực hiện. Sau khi được chấp thuận, sẽ có một menu bật lên về các khóa SSH. Tôi không hiển thị của tôi vì nó chứa thông tin nhạy cảm. Cụ thể, cặp khóa được sử dụng để xác thực và đăng nhập vào phiên bản ảo thông qua SSH (dòng lệnh cục bộ). Nếu bạn chưa có một cặp, AWS sẽ tạo một cặp cho bạn. Bạn phải tải xuống cái này và coi nó như một khóa cá nhân Ethereum! Đó là cách duy nhất để kết nối với phiên bản của bạn và AWS sẽ không lưu phiên bản đó cho bạn.

        Khi mọi thứ đã hoàn thành, cửa sổ này sẽ xuất hiện:

        Được chứ! Vậy là xong, hãy chuyển sang truy cập và bảo mật phiên bản của chúng tôi, sau đó cài đặt và chạy Teku!

        Truy cập phiên bản

        Cách chính để truy cập phiên bản AWS là thông qua SSH, “Một giao thức mật mã để vận hành các dịch vụ mạng một cách an toàn qua một mạng không an toàn.” Như đã đề cập trước đó, AWS theo mặc định vô hiệu hóa xác thực mật khẩu để truy cập phiên bản. Bạn chỉ có thể sử dụng cặp khóa được tạo trước khi khởi chạy phiên bản. Cặp khóa phải có đuôi tệp a.pem. 

        AWS cung cấp một cách rõ ràng để nhận lệnh SSH của bạn. Nhấp vào phiên bản đang chạy từ trang EC2 chính của bạn, có một nút ở phía trên bên phải cho biết “kết nối”:

        Trong trang tiếp theo sẽ là một lệnh SSH dành riêng cho phiên bản của bạn. Nó sẽ có cấu trúc như thế này:

        ssh -i "PATH_TO_AWS_KEYPAIR.pem" [email được bảo vệ]_IDENTIFIER.compute-ZONE.amazonaws.com

        Nhập lệnh này vào một thiết bị đầu cuối sẽ bắt đầu phiên SSH. Lần đầu tiên, máy cục bộ sẽ hỏi bạn có muốn tin tưởng vào vân tay ECDSA do AWS cung cấp hay không. Điều này là để ngăn chặn một người đàn ông giữa cuộc chiến và nếu lo ngại, người dùng có thể nhận được dấu vân tay của phiên bản của họ theo dõi những bươc này.

        Trong một thiết bị đầu cuối tách biệt với phiên SSH hiện tại, hãy chuyển các tệp khóa trình xác thực cần thiết để chạy Teku. Trong bài đăng trên blog trước, chúng tôi đã hướng dẫn đặt cược 32 ETH và lấy các khóa xác thực cho Ethereum 2.0. Cuối cùng, chúng tôi còn lại với cấu trúc tệp này:

        eth2deposit-cli / └── validator_key_info / ├── KEYSTORE-M_123456_789_ABCD.json ├── KEYSTORE-M_123456_789_ABCD.txt └── DEPOSIT_DATA_YOUR_TIMESTAMP_HERE.json

        Chúng tôi cần chuyển tệp validator_key_info sang phiên bản ảo của chúng tôi. Giao thức Sao chép Bảo mật (scp) cho phép chúng tôi thực hiện việc này một cách an toàn. Điều chỉnh lệnh scp chung bên dưới bằng cách sử dụng đường dẫn đến thư mục ở trên và lệnh SSH trước đó:

        scp -r -i "PATH_TO_AWS_KEYPAIR.pem" / PATH_TO_KEYS / eth2deposit-cli / validator_key_info / [email được bảo vệ]_IDENTIFIER.compute-ZONE.amazonaws.com:~

        (Lưu ý “: ~” ở cuối toàn bộ lệnh.)

        Bạn sẽ thấy quá trình truyền tệp diễn ra. Nếu bạn điều hướng trở lại phiên SSH của mình và nhập ls, bạn sẽ thấy thư mục đã chuyển.

        Cài đặt Teku

        Bây giờ chúng tôi đã có các tệp trình xác thực mà chúng tôi cần, chúng tôi sẽ cài đặt Teku. Đầu tiên, chúng tôi phải cập nhật các chương trình hiện có và cài đặt các hệ thống Java cần thiết:

        Cài đặt Java

        cập nhật apt sudo && sudo apt install default-jre && sudo apt install default-jdk

        Kiểm tra kỹ Java đã cài đặt thành công với:

        java -version

        Cài đặt nhị phân

        Tìm bản phát hành Teku ổn định mới nhất tại đây. Sao chép địa chỉ liên kết vào tệp tar.gz, sau đó tải xuống từ phiên SSH của bạn. Đây là giao diện của tôi, phiên bản của bạn rất có thể sẽ khác:

        curl -JLO https://bintray.com/consensys/pegasys-repo/download_file?file_path=teku-20.11.1.tar.gz

        Giải nén tệp đã tải xuống bằng lệnh sau. Nếu bạn có phiên bản khác, hãy đặt tên tệp đó thay vì teku-20.11.1.tar.gz:

        tar -zxvf teku-20.11.1.tar.gz

        Vì mục đích sạch sẽ, hãy xóa tệp tar.gz.

        Sau tất cả các bước này, đây là giao diện thư mục chính của bạn (số phiên bản Teku và nội dung có thể khác:

        ubuntu / └── teku-20.11.1 / ├── LICENSE ├── bin / ├── lib / ├── license-dependency.html ├── teku.autocomplete.sh └── validator_key_info / ├── KEYSTORE -M_123456_789_ABCD.json ├── KEYSTORE-M_123456_789_ABCD.txt └── DEPOSIT_DATA_YOUR_TIMESTAMP_HERE.json

        Tạo người dùng không phải root

        Bước này được sao chép từ Somer Esat’s hướng dẫn Ubuntu / Teku xuất sắc

        Chúng tôi sẽ tạo một người dùng không phải root có tên là teku, người có thể vận hành Teku. Nhập thông tin sau:

        sudo useradd –no-create-home –shell / bin / false teku 

        Chúng tôi cũng sẽ tạo một thư mục dữ liệu tùy chỉnh cho Teku, sau đó cấp cho người dùng teku quyền truy cập vào nó:

        sudo mkdir / var / lib / teku && sudo chown -R teku: teku / var / lib / teku

        Tạo dịch vụ systemd

        Bước này được điều chỉnh từ Somer Esat’s hướng dẫn Ubuntu / Teku xuất sắc

        Bước này sẽ tạo một dịch vụ chạy Teku ở chế độ nền. Nó cũng sẽ cho phép máy tự động khởi động lại dịch vụ nếu nó dừng vì một lý do nào đó. Đây là bước cần thiết để đảm bảo trình xác thực của chúng tôi chạy 24-7.

        Tạo tệp dịch vụ bằng cách sử dụng trình soạn thảo văn bản nano:

        sudo nano /etc/systemd/system/teku.service

        Trong tệp này (phải trống), chúng tôi sẽ đặt một loạt lệnh để systemd thực thi khi chúng tôi bắt đầu dịch vụ. Đây là đoạn mã bên dưới, bạn sẽ phải điền vào các mục tiếp theo mà chúng tôi đã thu thập được trong suốt hành trình này:

        • Điểm cuối HTTP Infura Eth1
        • validator_key_info đường dẫn thư mục với hai tệp liên quan đến khóa hợp lệ
        • Đường dẫn dữ liệu tùy chỉnh (lib / var / teku)

        Đặt các giá trị đó vào mã in đậm bên dưới, sau đó sao chép tất cả vào trình soạn thảo văn bản nano:

        [Unit] Description = Teku Beacon Node Wants = network-online.target After = network-online.target [Service] Type = simple User = teku Group = teku Restart = always RestartSec = 5 ExecStart = / home / ubuntu / teku-20.11 .1 / bin / teku –network = mainnet –eth1-endpoint = INFURA_ETH1_HTTP_ENDPOINT_GOES_HERE –validator-keys = / home / ubuntu / validator_key_info / KEYSTORE-M_123456_789_ABCD.json: /home/ubuntu/validator_key_info/validator_keys/KEYSTORE_789_AB456 –rest-api-enable = true –rest-api-docs-enable = true –metrics-enable –validators-keystore-lock-enable = false –data-base-path = / var / lib / teku [Cài đặt] WantedBy = multi-user.target

        Nhập lệnh-X, sau đó nhập “Y” để lưu các thay đổi của bạn

        Chúng tôi phải khởi động lại “systemctl” để cập nhật nó:

        sudo systemctl daemon-tải lại

        Bắt đầu dịch vụ:

        sudo systemctl start teku

        Kiểm tra để đảm bảo rằng nó bắt đầu ổn:

        trạng thái sudo systemctl teku

        Nếu bạn thấy bất kỳ lỗi nào, hãy xem thêm chi tiết bằng cách chạy:

        sudo journalctl -f -u teku.service

        Bạn có thể dừng dịch vụ Teku bằng cách chạy:

        sudo systemctl dừng teku

        Kiểm tra trang khắc phục sự cố Teku để biết các lỗi thường gặp hoặc kiểm tra sự bất hòa của Teku, được giám sát bởi nhóm.

        Khi bạn cảm thấy mình đã hoàn tất mọi thứ, hãy bật dịch vụ khởi động lại nếu nó bị tắt bằng cách chạy:

        sudo systemctl cho phép teku

        Đây là bạn có nó! Mọi thứ nên được nấu ngay bây giờ. Khi kiểm tra dịch vụ Teku, bạn sẽ thấy một loạt nhật ký ghi nhận Sự kiện đồng bộ hóa, đây là trình xác thực của bạn đang đồng bộ hóa chuỗi báo hiệu. Khi nó đến đầu, các nhật ký đó sẽ thay đổi để đọc Sự kiện Slot và bạn cũng sẽ thấy hiệu suất chứng thực của mình và các đề xuất khối.

        Phóng

        Nguồn: Beaconcha.in

        Vào ngày 1 tháng 12 lúc 12 giờ đêm UTC, các khối đầu tiên của Beacon Chain đã được xác thực. Khối đầu tiên đến từ Trình xác thực 19026, với bức vẽ graffiti bí ẩn, “Mr F đã ở đây.” Mười hai giây sau là khối tiếp theo, hình vẽ trên tường cho thấy trình xác thực có thể nằm ở Zug, Thụy Sĩ. Chuỗi báo hiệu Eth2 tăng trưởng ổn định, từng khối sau mỗi 12 giây. Sau đó, trở ngại tiếp theo: liệu có đủ trình xác thực trực tuyến để hoàn thiện Kỷ nguyên đầu tiên không? Đúng! 82,27% người xác nhận đã chứng thực tính hợp lệ của Epoch 0, tầng trệt của Beacon Chain. Bạn có thể đọc thêm về việc ra mắt Beacon Chain và những gì tiếp theo, tại đây. 

        Nguồn: Beaconcha.in

        Chúng tôi hiện đang sử dụng Epoch 760, có nghĩa là Beacon Chain đã hoạt động trơn tru trong gần một tuần. 

        Dưới đây là ảnh chụp từ góc nhìn của tôi về khoảnh khắc khởi đầu, sử dụng thiết lập được mô tả trong bài đăng này:

        Trong phần tiếp theo, chúng tôi sẽ tóm tắt lại mọi thứ đang diễn ra như thế nào. Tôi sẽ truy cập các chỉ số từ Teku, thảo luận về chi phí chạy AWS và thảo luận ngắn gọn về trạng thái của mạng.

        Giữ nguyên!

        Tài nguyên và liên kết

        Cảm ơn James Beck, Meredith Baxter, Jason Chroman, Aaron Davis, Chaminda Divitotawela, Ben Edgington, The Dark Jester, Somer Esat, Joseph Lubin, Collin Meyers, Nick Nelson, Mara Schmiedt, Adrian Sutton và Alex Tudorache đã hỗ trợ và hỗ trợ kỹ thuật.

        Ethereum 2.0 Bản tin Đăng ký nhận bản tin của chúng tôi để nhận tin tức Ethereum mới nhất, các giải pháp doanh nghiệp, tài nguyên dành cho nhà phát triển và hơn thế nữa.

        Mike Owergreen Administrator
        Sorry! The Author has not filled his profile.
        follow me
        Like this post? Please share to your friends:
        Adblock
        detector
        map