Mạng riêng Ethereum - Tạo chuỗi khối Ethereum của riêng bạn!



Trong hướng dẫn Mạng riêng Ethereum này, bạn sẽ học cách tạo chuỗi khối Ethereum của riêng mình và cách thực hiện giao dịch giữa hai tài khoản.

Trước Hướng dẫn Truffle Ethereum , bạn đã biết về Truffle Suite và phát triển Ethereum DApp. Để phát triển một ứng dụng ethereum phức tạp, bạn sẽ muốn chạy nó trên một mạng riêng để xem nó hoạt động như thế nào trước khi triển khai. Vì vậy, trong hướng dẫn Mạng riêng Ethereum này, bạn sẽ học cách tạo Mạng Ethereum riêng tư và cách thực hiện giao dịch giữa hai tài khoản.

Bạn quan tâm đến Phát triển Ethereum? Xem Trực tiếp .





Hướng dẫn về mạng riêng Ethereum

Đây là những chủ đề tôi sẽ đề cập trong hướng dẫn này:

Mạng riêng Ethereum là gì?

Mạng riêng Ethereum là một Blockchain hoàn toàn riêng tư được tách biệt khỏi mạng Ethereum chính. Ethereum Private Network chủ yếu được tạo ra bởi các tổ chức để hạn chế quyền đọc của Blockchain. Chỉ các nút có quyền phù hợp mới có thể truy cập vào Blockchain này. Các nút trong mạng này không được kết nối với các nút mạng chính và phạm vi tiếp cận của chúng chỉ bị hạn chế trong Blockchain riêng tư này.



Hướng dẫn Mạng riêng tư và Công khai -Ethereum - Edureka

Tại sao Ethereum Private Network được sử dụng?

Ethereum Private Network được các tổ chức sử dụng để lưu trữ dữ liệu riêng tư không được hiển thị cho những người bên ngoài tổ chức của họ. Ethereum Private Network cũng được sử dụng để kiểm tra và thử nghiệm Blockchain nếu ai đó không muốn sử dụng các mạng thử nghiệm công khai.

Các tính năng của Mạng riêng Ethereum

Như đã đề cập trong phần trước, Ethereum Private Network được sử dụng cho mục đích thử nghiệm. Nhưng tại sao ai đó lại gặp khó khăn khi tạo một mạng mới khi đã có sẵn các mạng thử nghiệm công khai? Chà, Mạng riêng Ethereum có bộ tính năng riêng như được liệt kê bên dưới:



  • Nó hoạt động như một Cơ sở dữ liệu phân tán
  • Blockchain trong Mạng riêng tư Ethereum có thể chứa dữ liệu riêng tư (vì mạng không công khai)
  • Quyền truy cập có thể dựa trên quyền
  • Thực hiện giao dịch có thể miễn phí
  • Các tài khoản có thể được phân bổ bằng etebởi chính chúng ta thậm chí không yêu cầu mua ete ảo

Tiếp tục, hãy bắt đầu phần thực hành của hướng dẫn Mạng riêng Ethereum này.

Cài đặt Ethereum trên Ubuntu

Để tạo Mạng riêng Ethereum, trước tiên chúng ta cần cài đặt Ethereum vào hệ thống của mình. Trong phần này của Hướng dẫn sử dụng mạng riêng tư Ethereum, bạn sẽ học cách cài đặt Ethereum trên Ubuntu.

Để cài đặt Ethereum, hãy chạy các lệnh sau trong thiết bị đầu cuối:

$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Làm xong! Thao tác này sẽ cài đặt Ethereum trên hệ thống của bạn.

Hãy bắt đầu với việc tạo Mạng riêng.

Demo: Tạo mạng riêng Ethereum và thực hiện giao dịch

Trong Hướng dẫn về Mạng riêng Ethereum này, chúng tôi sẽ gửi etetừ tài khoản này sang tài khoản khác và vì vậy, chúng tôi cần tài khoản. Bây giờ chúng ta hãy xem cách tạo tài khoản cho Blockchain của chúng tôi.

Tạo tài khoản cho mạng riêng Ethereum

Trước khi tạo tài khoản mới, chúng ta hãy tạo một thư mục mới cho nơi làm việc của mình. Tham khảo các lệnh dưới đây để thực hiện việc này:

làm thế nào để trở thành ai kỹ sư
$ mkdir private-ethereum $ cd private-ethereum

Để thực hiện một giao dịch, chúng ta cần ít nhất hai tài khoản: Một người nhận và một người gửi.

Để tạo hai tài khoản, hãy chạy lệnh sau hai lần:

$ geth --datadir ./datadir tài khoản mới

Nhập cụm mật khẩu cho mỗi tài khoản khi được hỏi. Đừng quên cụm mật khẩu này!

Khi các lệnh này chạy thành công, hai tài khoản sẽ được tạo và địa chỉ tài khoản sẽ được hiển thị trên màn hình.

Lưu những địa chỉ này ở đâu đó vì chúng tôi sẽ sử dụng những địa chỉ này hơn nữa.

Tạo tệp Genesis

Tệp Genesis chứa các thuộc tính xác định Blockchain. Tệp Genesis là điểm khởi đầu của Blockchain và do đó, bắt buộc phải tạo tệp Genesis để tạo ra một Blockchain. Bây giờ, chúng ta hãy tạo Genesistập tin.

Đầu tiên, hãy tạo một tệp có tên genesis.json

$ nano genesis.json

Và bây giờ sao chép và dán đoạn mã sau vào tệp đó:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'khó': '400', 'gasLimit': ' 2000000 ',' cert ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b2000000000} 12000000000000}: {'balance':

Ghi chú: Trong đoạn mã trên, hãy thay thế địa chỉ dưới cấp phát với địa chỉ của các tài khoản mà bạn đã tạo ở bước trước.

Lưu nó và thoát.

Hãy để tôi giải thích ngắn gọn nội dung của tệp Genesis:

chainId - Đây là số nhận dạng chuỗi được sử dụng để phân biệt giữa các Blockchains
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - các thuộc tính này có liên quan đến việc tạo chuỗi và lập phiên bản. Chúng tôi không cần những thứ này cho hướng dẫn của mình, vì vậy hãy đặt chúng thành 0.
khó khăn - Con số này quyết định mức độ khó khai thác của các khối. Đối với mạng Riêng tư, bạn nên đặt số thấp hơn vì nó cho phép bạn khai thác các khối nhanh chóng, dẫn đến giao dịch nhanh.
gasLimit - Con số này là tổng lượng gas có thể được sử dụng trong mỗi block. Chúng tôi không muốn mạng của mình đạt đến giới hạn, vì vậy chúng tôi đã đặt mức này cao.
cấp phát - Phần này dùng để cấp phát ete cho các tài khoản đã tạo.

làm thế nào để dừng một chương trình java trong mã

Tệp Genesis đã sẵn sàng. Bây giờ, đã đến lúc bắt đầu Blockchain.

Tạo thư mục dữ liệu tức thời

Trước khi khởi động Blockchain, chúng ta phải khởi tạo thư mục dữ liệu. Thư mục Dữ liệu là thư mục lưu trữ dữ liệu liên quan đến Blockchain. Để khởi tạo thư mục dữ liệu, hãy chạy lệnh sau:

$ geth --datadir ./myDataDir init ./genesis.json

Khi khởi tạo thành công, bạn sẽ thấy kết quả sau:

Với Thư mục dữ liệu được khởi tạo, bây giờ chúng ta có thể khởi động Blockchain.

Khởi động Ethereum Private Blockchain

Để khởi động Blockchain, hãy chạy lệnh sau:

$ geth --datadir ./myDataDir --networkid 1114 console 2 >> Eth.log

Làm xong! Blockchain Ethereum riêng tư của bạn đang hoạt động.

Trong lệnh trên, chúng tôi đang gửi tất cả nhật ký trong một tệp riêng biệt có tên Eth.log . Geth sẽ tự động tạo một tệp mới nếu nó không được tìm thấy.

Đầu ra của mã này sẽ giống như sau:

Bây giờ, chúng tôi đã tham gia vào geth bàn điều khiển nơi chúng ta có thể chạy các lệnh cho Blockchain của mình.

Đọc nhật ký

Trong phần trước, tôi đã đề cập rằng chúng tôi đang lưu trữ các bản ghi trong một tệp khác. Trong phần này, tôi sẽ cho bạn biết cách đọc nhật ký từ tệp này.

Chúng tôi sẽ đọc nhật ký từ một thiết bị đầu cuối riêng biệt, vì vậy trước tiên hãy mở một thiết bị đầu cuối mới. Đầu tiên,chuyển sang private-ethereum và sau đó chạy lệnh sau để đọc nhật ký:

$ tail -f Eth.log

Bây giờ bạn có thể xem nhật ký trong thiết bị đầu cuối. Các nhật ký này được cập nhật động bất cứ khi nào có hoạt động nào đó trong Blockchain.

Nhập tài khoản vào Mạng riêng

Bạn có thể nhớ rằng chúng tôi đã tạo hai tài khoản để thực hiện giao dịch. Tuy nhiên, chúng tôi đã không thêm các tài khoản này vào mạng của mình. Vì vậy, trong phần hướng dẫn Ethereum Private Network này, tôi sẽ cho bạn biết cách nhập tài khoản.

Khi chúng tôi tạo tài khoản, tất cả các chi tiết của tài khoản được lưu trữ trong UTC tập tin trong thư mục được đề cập trong quá trình tạo tài khoản (đường dẫn: ./datadir/keystore ). Để nhập tài khoản, chúng tôi cần sao chép các tệp này và dán vào kho khóa thư mục trong Thư mục dữ liệu(con đường: ./myDataDir/keystore )

Đó là tất cả! Các tài khoản được nhập. Đơn giản, phải không? Để xác minh việc nhập, chúng tôi sẽ chạy lệnh sau trong geth bàn điều khiển.

> eth.accounts

Điều này sẽ hiển thị danh sách tất cả các tài khoản có sẵn.

Để kiểm tra số dư của các tài khoản này, chúng tôi sẽ sử dụng lệnh sau:

> web3.fromWei (eth.getBalance (), 'ether')

Chúng tôi đã sẵn sàng với mọi thứ cần thiết để thực hiện giao dịch. Tại sao chờ đợi? Hãy làm nó!

Thực hiện một giao dịch

Trong hướng dẫn Mạng riêng Ethereum này, chúng tôi sẽ gửi một số etetừ tài khoản này sang tài khoản khác.

Cú pháp để gửi ete như sau:

> eth.sendTransaction ({from: ”address”, to: ”address”, value: web3.toWei (amount, 'ether')})

Chúng tôi sẽ gửi 1000 ete từ tài khoản 1 đến tài khoản 2 bằng lệnh sau:

> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], value: web3.toWei (1000, 'ether')})

Không hoạt động? Đừng lo lắng. Nó cũng không hiệu quả với tôi. Điều này là do tài khoản bị khóa theo mặc định và không cho phép giao dịch.

Vì vậy, trước tiên, chúng ta cần mở khóa tài khoản người gửi. Nhớ cụm mật khẩu bạn đã sử dụng khi tạo tài khoản? Vâng, bạn phải làm vậy, bởi vì bạn sẽ phải sử dụng nó để mở khóa tài khoản. Chúng tôi sẽ mở khóa tài khoản bằng lệnh sau:

Personal.unlockAccount (eth.accounts [0], '')

Bây giờ chúng tôi sẽ gửi etethành công:

> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], value: web3.toWei (1000, 'ether')})

Điều này sẽ trả về một ID giao dịch.

hợp nhất sắp xếp mã nguồn c ++

Làm xong! Bạn đã thực hiện thành công một giao dịch!

Để xác minh giao dịch, hãy kiểm tra số dư trong cả hai tài khoản.

> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177'), 'ether')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca'), 'ether')

Yay! Chúng ta có thể thấy rằng 1000 eteđã được gửi từ tài khoản này sang tài khoản khác!

Xin chúc mừng! Bạn đã tạo Mạng riêng Ethereum và thực hiện giao dịch. Tôi hy vọng hướng dẫn về Mạng riêng Ethereum này có nhiều thông tin và giúp bạn hiểu về Mạng Riêng Ethereum. Bây giờ, hãy tiếp tục và thử thử nghiệm với mạng Riêng tư mới được tạo.

Có một câu hỏi cho chúng tôi? Hãy đăng nó trên và chúng tôi sẽ liên hệ lại với bạn.

Nếu bạn muốn tìm hiểu về Blockchain và xây dựng sự nghiệp trong Công nghệ Blockchain, hãy xem đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu Blockchain là gì một cách đầy đủ và giúp bạn đạt được thành thạo về chủ đề này.