Cài đặt playground plutus tại local
Xây dựng môi trường nhà phát triển Plutus trên Ubuntu 20.04
Chi tiết
Xây dựng môi trường Plutus Dev sử dụng (các) Kết quả mong muốn của Oracle VM VirtualBox Môi trường dành cho nhà phát triển làm việc cho Plutus
Tài nguyên
Cấu hình máy tính tốt: Máy tính cài phần mềm VM virtualBox 32 GB ram Hơn 100 GB dung lượng ổ cứng Hình ảnh với phần mềm Ubuntu Desktop 20.04
Ghi chú
Các hướng gẫn này hoạt động kể từ ngày 5/12/2021. Mọi thứ sẽ thay đổi theo thời gian. Vui lòng luôn kiểm tra kho lưu trữ github được liệt kê bên dưới để biết hướng dẫn cập nhật và bất kỳ thay đổi. Những hướng dẫn này không tuân theo hướng dẫn trên github như đã liệt kê, nhưng đây là cách tôi có thể làm cho mọi thứ hoạt động. Một trong những vấn đề khó khăn nhất trong buổi học đầu tiên là làm cho nó hoạt động, đây chỉ là cách tôi đã làm được. có những lựa chọn khác.
Các hướng dẫn sẽ được chia thành 3 phần. Phần đầu tiên hướng dẫn bạn cách cài đặt Haskell và các thành phần cần thiết trực tiếp vào máy ảo. Phần thứ hai hướng dẫn bạn cách cài đặt các tệp nhị phân nix-shell và Plutus cần thiết để chạy sân chơi plutus. Phần ba tạo sân chơi plutus.
Bạn cũng có thể sử dụng nix-shell cho bài tập về nhà của mình. Nếu bạn quyết định làm điều đó, Bạn có thể bỏ qua cài đặt Haskell.
Phần 1: Cài đặt Haskell
1) Tạo máy ảo với ít nhất 8 GB ram và 100 GB dung lượng lưu trữ. Đảm bảo rằng bạn chọn Ubuntu 64.
2) Bắt đầu chạy VM
3) Chọn hình ảnh VM cho ubuntu 20.04
4) Thực hiện quy trình bình thường để cài đặt ubuntu trên hệ thống của bạn (VM)
Sau khi bạn vào ubuntu của mình:
1) cập nhật và nâng cấp phần mềm:
sudo apt update
sudo apt upgrade -y
2) Cài đặt haskell
sudo apt-get install haskell-platform
3) Cài đặt ghcup và tất cả các tùy chọn (ghcup giúp dễ dàng di chuyển giữa các phiên bản của haskell, v.v.)
canh 1:
sudo apt install curl
sudo apt install build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libsodium-dev
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
Cach 2:
1 Install Cabal version 3.2.0.0 to our local bin folder (.local/bin)
sudo whoami
cd
wget https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz
tar -xf cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz
rm cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz cabal.sig
mkdir -p ~/.cabal/bin
mv cabal ~/.cabal/bin/
2 Installing GHC 8.10.2 version - The Glorious Glasgow Haskell Compilation System (cardano node is based on the Haskell programming language)
sudo whoami
cd
wget https://downloads.haskell.org/ghc/8.10.2/ghc-8.10.2-x86_64-deb9-linux.tar.xz
tar -xf ghc-8.10.2-x86_64-deb9-linux.tar.xz
rm ghc-8.10.2-x86_64-deb9-linux.tar.xz
cd ghc-8.10.2
./configure
sudo make install
cd
3 Update PATH NODE
echo export PATH=~/.cabal/bin:$PATH >> ~/.bashrc
source ~/.bashrc
echo $PATH
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
echo export CNODE_HOME=/opt/cardano/cnode >> $HOME/.bashrc
echo export CARDANO_NODE_SOCKET_PATH="$CNODE_HOME/sockets/node0.socket" >> $HOME/.bashrc
source ~/.bashrc
Điều này có thể mất một thời gian
KHỞI ĐỘNG LẠI VM ĐẦU TIÊN
ghc --version
-- Nó phải là: 8.10.4
cabal --version
-- Nó phải là: 3.4.0.0
4) Nhân bản plutus và thư mục tiên phong plutus. Bạn có thể đặt chúng ở bất cứ đâu. tôi đã tạo một thư mục riêng biệt để đưa chúng vào:
sudo apt install git
mkdir cardano
cd cardano
git clone https://github.com/input-output-hk/plutus
git clone https://github.com/input-output-hk/plutus-pioneer-program
-- Bây giờ bạn có mọi thứ bạn cần để chỉnh sửa hợp đồng thông minh và chạy chúng với giao diện dòng lệnh
-- Bạn phải chạy cập nhật cabal và xây dựng cabal trước khi bắt đầu ở một phần khác của bài tập về nhà
-- Lần đầu tiên bạn chạy xây dựng cabal sẽ mất nhiều thời gian ...
-- Bây giờ bạn cũng có thể chạy repl và test haskel - hầu hết tất cả các ví dụ này đều có trong video bài học đầu tiên
Phần 2: Cài đặt nix-shell
-- Bây giờ chúng ta sẽ cài đặt nix
1) Chúng ta cần cài đặt bộ nhớ đệm
Tạo thư mục /etc/nix/:
sudo mkdir /etc/nix
Sử dụng trình chỉnh sửa mã để đưa nội dung sau vào tệp có tên nix.conf trong thư mục nix (/etc/nix/nix.conf)
:
substituters = https://hydra.iohk.io https://iohk.cachix.org https://cache.nixos.org/
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/nhblbov/8MW7Rqoo= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
experimental-features = nix-command flakes
2) Cài đặt nix
curl -L https://nixos.org/nix/install | sh
Sau khi bạn cài đặt nix, hãy đảm bảo cài đặt các biến môi trường. Nó sẽ cho bạn biết làm thế nào sau khi cài đặt xong nix. nó sẽ giống cái này
Như thế này . /home/(user)/.nix-profile/etc/profile.d/nix.sh
bạn cũng có thể cần thêm nix vào Đường dẫn của mình. Tôi thực hiện bằng cách thêm ~/.nix-profile/bin vào file /etc/environment. Sau đó bạn khởi động lại Máy tính
Để nó hoạt động
3) Chạy lệnh nix trong thư mục Plutus::
Trước khi chạy lệnh nix-build sau, hãy đặt thẻ trong plutus trở lại thẻ ban đầu (3746610e53654a1167aeb4c6294c6096d16b0502) từ ngày học đầu tiên. Điều này đã giải quyết được sự cố mà tôi đang gặp phải với ứng dụng Client không biên dịch chính xác với các sáng tạo môi trường nhà phát triển mới hơn.
~/cardano/plutus $ git checkout 3746610e53654a1167aeb4c6294c6096d16b0502
~/cardano/plutus $ nix build -f default.nix plutus.haskell.packages.plutus-core.components.library
-- Điều này sẽ mất nhiều thời gian và bạn sẽ nhận được cảnh báo về việc: dumping very large path
. Bạn có thể bỏ qua điều đó.
-- Sau khi hoàn tất, mọi thứ đã được cài đặt ngoại trừ trình chỉnh sửa mã bạn sẽ sử dụng
-- Lần đầu tiên bạn chạy nix-shell, nó cũng sẽ mất một lúc
-- video đầu tiên hướng dẫn bạn cách khởi động ứng dụng và máy chủ sân chơi plutus
Phần 3: Tạo sân chơi Plutus
Điều trên sẽ thiết lập môi trường của bạn với các phụ thuộc cần thiết để biên dịch các hợp đồng mẫu.
Khi bạn đã ở bên trong Nix shell, bạn có thể khởi động máy khách và máy chủ Plutus từ kho lưu trữ Plutus của bạn.
Các video bài giảng được ghi lại vào nhiều thời điểm khác nhau và mã Plutus cùng với chúng được biên soạn dựa trên các cam kết cụ thể của nhánh chính của Plutus. Bạn có thể tìm thấy thẻ cam kết trong tệp cabal.project.
-- Bạn mở 2 terminal một cho server và một cho client
Server
Tại terminal 1 bạn chạy:
cd cardano/plutus
. /home/nvhieu/.nix-profile/etc/profile.d/nix.sh
nix-shell
cd plutus-playground-server
plutus-playground-server
Client
Tại terminal 2 bạn chạy:
cd ~/cardano/plutus
. /home/nvhieu/.nix-profile/etc/profile.d/nix.sh
nix-shell
cd plutus-playground-client
npm run start
Biên dịch
Để kiểm tra xem mọi thứ có theo thứ tự hay không, sau đó bạn có thể biên dịch mã cho week01. Điều này không cần thiết để chạy mã trong sân chơi, vì sân chơi có thể tự biên dịch mã.
cd /path/to/plutus-pioneer-program/repo/code/week01
cabal build all
Nếu mọi thứ suôn sẻ trong thiết lập ở trên, bạn sẽ có thể mở sân chơi tại https://localhost:8009. Bạn có thể sẽ nhận được lỗi chứng chỉ, lỗi này có thể được bỏ qua.