├── auto-restart ├── requirements.txt ├── restart_container_if_err.py ├── README_en.md └── README.MD ├── güncelleme.md ├── node taşıma.md └── README.md /auto-restart/requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2024.2.2 2 | charset-normalizer==3.3.2 3 | docker==7.0.0 4 | idna==3.6 5 | packaging==23.2 6 | requests==2.31.0 7 | urllib3==2.2.0 8 | -------------------------------------------------------------------------------- /güncelleme.md: -------------------------------------------------------------------------------- 1 | // mevcut avs-operator-setup klasörü içindeki .env dosyasını yedek alın 2 | 3 | ``` 4 | cd avs-operator-setup 5 | 6 | docker-compose down 7 | 8 | git reset --hard 9 | 10 | git pull 11 | 12 | git checkout tags/v0.2 -b v0.2 13 | ``` 14 | 15 | //yedek aldığın .env dosyasını açıp (`nano .env`) yeni dosyadaki boşluk olan yerleri de değiştir. Eigende stETH min 1 olacak şekilde stake arttır 16 | 17 | ``` 18 | docker-compose pull 19 | 20 | docker-compose up -d 21 | 22 | docker logs -f avs-finalizer-node 23 | ``` 24 | 25 | 26 | ## Readonly hatası alıyorsanız: 27 | 28 | ``` 29 | # operatörü durdur 30 | docker-compose down 31 | ``` 32 | Docker config dosyasına giriyoruz 33 | ``` 34 | nano docker-compose.yml 35 | ``` 36 | 37 | Config dosyasının içindeki iki satırın sonunda `:readonly` ibaresini siliyoruz. Sonrası Ctrl + X -> y -> Enter 38 | 39 | Operatörü yeniden başlatıyoruz: 40 | ``` 41 | docker-compose up -d 42 | ``` -------------------------------------------------------------------------------- /auto-restart/restart_container_if_err.py: -------------------------------------------------------------------------------- 1 | import json 2 | import docker 3 | 4 | from datetime import datetime 5 | 6 | client = docker.from_env() # Connect to the local Docker daemon 7 | 8 | if __name__ == "__main__": 9 | 10 | # Replace with your actual container name 11 | container_name = "mangata-finalizer-node" 12 | container = client.containers.get(container_name) 13 | print("Script started!") 14 | print("Container State: ", container.attrs['State']) 15 | 16 | while True: 17 | # We assume that container is already up and running 18 | # It is restarted if "connection is shut down" error is encountered in the logs 19 | if container.attrs['State']['Restarting'] == True or container.attrs['State']['Status'] == "restarting": 20 | pass #  If state is restarting do nothing 21 | else: 22 | try: 23 | script_initalized = datetime.now() #  Required to filter logs by time 24 | for line in container.logs(stream=True, follow=True, since=script_initalized): 25 | decoded_line = line.decode('utf-8').strip().split("\t") 26 | if len(decoded_line) > 1 and decoded_line[1] == "INFO": 27 | try: # Required to suppress errors raised by json package 28 | message = json.loads(decoded_line[-1]) 29 | if "err" in message: 30 | if message["err"] == "connection is shut down": 31 | print("Restart required!") 32 | print(decoded_line[0], message) 33 | container.restart() 34 | break 35 | else: 36 | print(decoded_line[0], message) 37 | except Exception as e: 38 | pass 39 | 40 | except Exception as e: 41 | print(f"Error: {e}") 42 | break #  Terminate 43 | -------------------------------------------------------------------------------- /auto-restart/README_en.md: -------------------------------------------------------------------------------- 1 | # Mangata-AVS Operator Auto Restart 2 | 3 | This script restarts the container if the Mangata operator raises the `err: connection is shut down` error. Consequences are at your own responsibility. It is running on my server. Check the `container_name` variable if you changed the default name of the container before starting the script (`docker ps` to check container name). 4 | 5 | **Note:** 6 | 7 | * This script requires the user to be added to the `docker` user group. 8 | * The script may fail if you don't have the required permissions. 9 | 10 | ## Installation 11 | ```bash 12 | ## Cloning repository 13 | git clone https://github.com/walter-s0bch4k/mangata-AVS-with-auto-restart.git 14 | # Change directory to downloaded repository 15 | cd mangata-AVS-with-auto-restart 16 | # If you downloaded the repo from a different location, please navigate to the folder containing the 17 | # `requirements.txt` and `restart_container_if_err.py` files by checking the file names in the download location. 18 | # To verify you are in the correct location, run the following command: 19 | ls -al 20 | # You should see the `requirements.txt` and `restart_container_if_err.py` files in the output of the command. 21 | 22 | ## Installing pip 23 | # Get pip installation script 24 | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 25 | # Execute script to install, you might need to replace python3 to python etc. 26 | sudo python3 get-pip.py 27 | 28 | ## Docker settings 29 | # Create docker user group 30 | sudo groupadd docker 31 | # Add current user to docker group 32 | sudo usermod -aG docker $USER 33 | 34 | ## Executing the script 35 | # Install required packages 36 | pip install -r requirements.txt 37 | # Execute using nohup to make it run in background even if you disconnect 38 | nohup python3 -u restart_container_if_err.py > logs.txt & 39 | # Checking logs. Please read content carefully, there should be no errors. 40 | cat logs.txt 41 | 42 | ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 43 | ## Kill the process if you manually restart container or close it! 44 | # Get PID by 45 | ps -aux | grep restart_container_if_err.py 46 | # Then kill process 47 | kill -9 48 | ``` -------------------------------------------------------------------------------- /auto-restart/README.MD: -------------------------------------------------------------------------------- 1 | # Mangata-AVS Operatörü Otomatik Yeniden Başlatma 2 | 3 | Bu komut dosyası, Mangata operatörü "err: connection is shut down" hatasını verdiğinde konteyneri yeniden başlatır. Bu komut dosyası kendi sunucumda çalışmaktadır ve herhangi bir sorun olmamıştır. Komut dosyasını çalıştırmadan önce varsayılan konteyner adını değiştirdiyseniz `container_name` değişkenini kontrol edin (konteyner adını kontrol etmek için `docker ps` kullanın). 4 | 5 | **Not:** 6 | 7 | * Bu komut dosyası, kullanıcının docker kullanıcı grubuna eklenmesini gerektirir. 8 | * Gerekli izinlere sahip değilseniz komut dosyası başarısız olabilir. 9 | 10 | ## Kurulum 11 | ```bash 12 | ## Repoyu klonlama 13 | git clone https://github.com/walter-s0bch4k/mangata-AVS-with-auto-restart.git 14 | # İndirilen repoda doğru klasöre gidin 15 | cd mangata-AVS-with-auto-restart/auto-restart 16 | # Eğer repoyu farklı bir adresten indirdiyseniz, lütfen indirdiğiniz adresin dosya isimlerini kontrol ederek 17 | # İçerisinde `requirements.txt` ve `restart_container_if_err.py` dosyaları olan klasöre gidin. 18 | # Doğru yerde olduğunuzu kontrol etmek için 19 | ls -al 20 | # Komutunun çıktısında `requirements.txt` ve `restart_container_if_err.py` dosyalarını görmelisiniz. 21 | 22 | ## pip Kurulumu 23 | # pip kurulum komut dosyasını indirin 24 | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 25 | # Komut dosyasını çalıştırın, python3'ü python ile değiştirmeniz gerekebilir 26 | sudo python3 get-pip.py 27 | 28 | ## Docker Ayarları 29 | # docker kullanıcı grubu oluşturun 30 | sudo groupadd docker 31 | # Mevcut kullanıcıyı docker grubuna ekleyin 32 | sudo usermod -aG docker $USER 33 | # Bu adımdan sonra hesabınızdan çıkıp tekrar giriş yapmanız gerekmektedir. 34 | # Uzak bağlantı kullanıyorsanız bağlantıyı kapatıp tekrar bağlanmayı deneyebilirsiniz. 35 | 36 | ## Komut Dosyasını Çalıştırma 37 | # Gerekli paketleri kurun 38 | pip install -r requirements.txt 39 | # Arka planda çalışması için nohup kullanın, bağlantınız kesilse bile çalışmaya devam eder 40 | nohup python3 -u restart_container_if_err.py > logs.txt & 41 | # Logları kontrol edin. İçeriği dikkatlice okuyun, hata olmamalıdır. 42 | cat logs.txt 43 | 44 | ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 45 | ## Konteyneri manuel olarak yeniden başlattıysanız veya kapattıysanız işlemi sonlandırın! 46 | # PID'yi alın 47 | ps -aux | grep restart_container_if_err.py 48 | # Ardından işlemi sonlandırın 49 | kill -9 50 | ``` -------------------------------------------------------------------------------- /node taşıma.md: -------------------------------------------------------------------------------- 1 |

mangata-avs-node-tasima-

2 | 3 | ## 4 | > cc: [ruesandora](https://github.com/ruesandora/mangata-AVS) 5 | 6 | > Kendi node'umu taşırken size yardımcı olması için bir repo yaptım. 7 | Başlayalım.( Önceki kurulumunuz başarılı değilse bu repo sizin için uygun değildir. ) 8 | 9 | ```console 10 | # Öncelikle eski sunucunuza bu komutları uygulayın. 11 | cd avs-operator-setup 12 | docker ps -a 13 | docker stop ( tırnakları kaldırıp aldığımız iki adet container id'i ayrı ayrı komut olarak girelim. ) 14 | 15 | # Güncelleme ve docker kurulumu, komutları sırasıyla girebilirsiniz 16 | sudo apt update -y && sudo apt upgrade -y 17 | for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done 18 | 19 | sudo apt-get update 20 | sudo apt-get install ca-certificates curl gnupg 21 | sudo install -m 0755 -d /etc/apt/keyrings 22 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 23 | sudo chmod a+r /etc/apt/keyrings/docker.gpg 24 | 25 | # bu komut satırını toplu girebilirsiniz 26 | echo \ 27 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ 28 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ 29 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 30 | 31 | # docker güncelleme ve run 32 | sudo apt update -y && sudo apt upgrade -y 33 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 34 | sudo docker run hello-world 35 | 36 | # Go kurulumu 37 | cd $HOME 38 | ver="1.20.2" 39 | wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" 40 | sudo rm -rf /usr/local/go 41 | sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" 42 | rm "go$ver.linux-amd64.tar.gz" 43 | echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile 44 | source $HOME/.bash_profile 45 | go version 46 | ``` 47 | EigenLayer CLI kurulumu 48 | ```console 49 | # eigen klonlayalım 50 | git clone https://github.com/Layr-Labs/eigenlayer-cli.git 51 | cd eigenlayer-cli 52 | mkdir -p build 53 | go build -o build/eigenlayer cmd/eigenlayer/main.go 54 | 55 | # Binary dosyamızı PATH yoluna gönderiyoruz 56 | cd 57 | sudo cp eigenlayer-cli/build/eigenlayer /usr/local/bin/ 58 | mkdir -p /root/.eigenlayer/operator_keys 59 | ``` 60 | 61 |

Simdi burada önemli bir kısım var. Burayı dikkatli yapalım.

62 | 63 | ```console 64 | # keylerimizi yeni sunucumuza import edelim.(parantezler olmadan) 65 | #ecdsa key için aşağıdaki komut. 66 | eigenlayer operator keys import --key-type ecdsa 67 | 68 | # bls key için aşağıdaki komut. 69 | eigenlayer operator keys import --key-type bls [keyname] [privatekey] 70 | 71 | # bu komut ile keylerimizi kontrol edelim.doğru ise devam. 72 | eigenlayer operator keys list 73 | 74 | # keylerimizi taşımış olduk. 75 | 76 | ``` 77 | Operator kaydı 78 | ```console 79 | # Bu komutun istediği verileri giriyoruz, veriler aşağıda yazdım. 80 | eigenlayer operator config create 81 | ``` 82 | 83 | > Sırasıyla bunlarıda yazıyorum kolaylık için, en aşağıda görselide olcak: 84 | > y diyoruz 85 | > operator adresi olarak, `ecdsa key` oluşturduğumuzda verdiği `evm` adresini girin. 86 | > earning operator adres yine aynı ecdsa-evm adresi girin, yukarıdaki ile aynı. 87 | > goerli eth RPC isteyecek, [infuradan](https://app.infura.io/) aldım ben ücretsiz goerli RPC 88 | > `ecdsa key` oluşturduğumuzda bize verdiği key pathi tam şekilde giriyoruz 89 | > aynı şekilde `bls key` path giriyoruz - path ne olduğunu bilmeyenler için görsele bakabilir 90 | > goerli seçiyoruz ve bitiyor. 91 | > Bu bize operator.yaml ve metadata.json dosyalarını oluşturacak.. 92 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/28554c5b-873d-4296-8e1b-8cda670c8e6f) 93 | 94 | # 95 | 96 | ```console 97 | # Operator.yaml dosyasını nano ile açıyoruz 98 | nano operator.yaml 99 | ``` 100 | 101 | > Burada yine değişiklik yapacağız 102 | > `metadata_url` için `metadata.json` dosyamızın public `raw linki` 103 | > `el_slasher_address` için: 0x3865B5F5297f86c5295c7f818BAD1fA5286b8Be6 104 | > `bls_public_key_compendium_address` için: 0xc81d3963087Fe09316cd1E032457989C7aC91b19 105 | > ctrl + x + y ile kaydedip çıkıyoruz. 106 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e61df955-89ac-4f31-8318-46c013d78817) 107 | 108 | ```console 109 | # daha önceden register ettiğimiz için tekrar etmemize gerek yok. 110 | # Durumunu kontrol etmek için 111 | eigenlayer operator status operator.yaml 112 | 113 | # metadata herhangi bir değişiklik yaptığınızda güncellemek için 114 | eigenlayer operator update operator.yaml 115 | ``` 116 | Eigen bitti şimdi Mangata AVS 117 | ```console 118 | git clone https://github.com/mangata-finance/avs-operator-setup.git 119 | cd avs-operator-setup 120 | chmod +x run.sh 121 | nano .env 122 | ``` 123 | 124 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/009b304b-23ed-4045-b23f-b0593ce76f89) 125 | 126 | ```console 127 | # Üst kısma dokunmuyorsunuz. SADECE: TODO yazan satırın altı bizi ilgilendiriyor. 128 | ETH_RPC_URL= goerli eth rpc http linki 129 | ETH_WS_URL= goerli eth wss linki 130 | # bu linkleri infuradan almıştık, zorlanırsan rues chatten yardım talep edin. 131 | 132 | # key yolundan kastım path, yukarıda öğrenmiştiniz. 133 | ECDSA_KEY_FILE_HOST= eigen cli kurulumda aldığımız ecdsa key yolumuz 134 | BLS_KEY_FILE_HOST= eigen cli kurulumda aldığımız bls key yolumuz 135 | 136 | # yukarıda bir şifre belirlemiştik her yerde kullandığımız. 137 | ECDSA_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi 138 | BLS_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi 139 | 140 | # ctrl + x + y yapıp kaydedip çıkıyoruz 141 | 142 | # şimdi opt-in yapalım son hamleler.. 143 | ./run.sh opt-in 144 | 145 | # key yolunda, şifrede vs hata yoksa bu adımlardan sonra docker compose up yapıyoruz ve sona geliyoruz. 146 | docker compose up -d 147 | 148 | # bir sorun olup olmadığını kontrol etmek için docker ps ile container id alın 149 | docker logs -f 150 | # container id başta olur ve kurduğunuz node un isminden hangi id olduğunu anlayabilirsiniz. 151 | ``` 152 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Mangata X - AVS

2 | 3 | 4 | ## Notlar: 5 | 6 | > Selamlar, bir süredir mangata çalıştırıyorum lakin 30 kişi ile sınırlıydı ve artık sınır kalktı. 7 | 8 | > Neden Mangata kuruyor Eigen AVS ekosistemine önem veriyorum [buradan](https://x.com/Ruesandora0/status/1754194993592275362?s=20) okuyabilirsiniz. 9 | 10 | > Testnet ne kadar sürürecek bilinmiyor, rewards var evet - KYC olabilir. 11 | 12 | > Ayrıca Mangatanın bir tokeni mevcut, yatırımcıları oldukça iyi ileride daha iyi hale gelecek bir protokol ve testnet önemli. 13 | 14 | > Ricamdır notları ve satır aralarını okumanızda, bu repoyu paylaştıktan sonra uçakta olacağım her şeyi yazıyorum size. 15 | 16 | > Son olarak, hocam şu node ile bu node yan yana olur mu diye sormayın [buraya](https://x.com/Ruesandora0/status/1744023547805061515?s=20) bakın arkadaşlar <3 17 | 18 | > Topluluk kanalları: [Sohbet Kanalımız](https://t.me/RuesChat) - [Duyurular ve Gelişmeler](https://t.me/RuesAnnouncement) - [Whatsapp](https://whatsapp.com/channel/0029VaBcj7V1dAw1H2KhMk34) - [Mangata Discord](https://discord.gg/mangata) 19 | 20 | # 21 | 22 |

Donanım

23 | 24 | > Görseldekine benzer bir cihaz yeterli, bunun için [Hetzner](https://github.com/ruesandora/Hetzner) kullanıyorum 25 | 26 | Ekran Resmi 2024-02-07 13 45 17 27 | 28 |

Kurulum

29 | 30 | ```console 31 | # Güncelleme ve docker kurulumu, komutları sırasıyla girebilirsiniz 32 | sudo apt update -y && sudo apt upgrade -y 33 | for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done 34 | 35 | sudo apt-get update 36 | sudo apt-get install ca-certificates curl gnupg 37 | sudo install -m 0755 -d /etc/apt/keyrings 38 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 39 | sudo chmod a+r /etc/apt/keyrings/docker.gpg 40 | 41 | # bu komut satırını toplu girebilirsiniz 42 | echo \ 43 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ 44 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ 45 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 46 | 47 | # docker güncelleme ve run 48 | sudo apt update -y && sudo apt upgrade -y 49 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 50 | sudo docker run hello-world 51 | 52 | # Go kurulumu 53 | cd $HOME 54 | ver="1.21.0" 55 | wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" 56 | sudo rm -rf /usr/local/go 57 | sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" 58 | rm "go$ver.linux-amd64.tar.gz" 59 | echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile 60 | source $HOME/.bash_profile 61 | go version 62 | ``` 63 | 64 |

EigenLayer CLI kurulumu

65 | 66 | ```console 67 | # eigen klonlayalım 68 | git clone https://github.com/Layr-Labs/eigenlayer-cli.git 69 | cd eigenlayer-cli 70 | mkdir -p build 71 | go build -o build/eigenlayer cmd/eigenlayer/main.go 72 | 73 | # Binary dosyamızı PATH yoluna gönderiyoruz 74 | cd 75 | sudo cp eigenlayer-cli/build/eigenlayer /usr/local/bin/ 76 | ``` 77 | 78 | > Altta ki komutlar ile KEY oluşturuyoruz.. 79 | 80 | > `ecdsa` KEY bize bir `evm` adresi, `private key` ve dosya `path` (yolu) verecek 81 | 82 | > `bls` KEY ise bir `private key` verecek. Hepsini kaydedin. 83 | 84 | > Kapalı parantez dahil, `` değiştirin, <> parantezleri kaldırın.. 85 | 86 | > Her komuttan sonra şifre oluşturmanızı isteyecek, şifre karmaşık olmalı. 87 | 88 | > Örnek şifre DenemeSifre123.,#% 89 | 90 | ``` 91 | eigenlayer operator keys create --key-type ecdsa 92 | eigenlayer operator keys create --key-type bls 93 | ``` 94 | 95 | > Listeleyerek keyleri ve dosya yollarını kontrol edin 96 | 97 | ``` 98 | eigenlayer operator keys list 99 | ``` 100 | 101 | > Örnek ecdsa key create çıktısı 102 | 103 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e72d6567-013a-492f-a6e0-1d610a286a45) 104 | 105 | 106 |

Operator kaydı

107 | 108 | ```console 109 | # Bu komutun istediği verileri giriyoruz, veriler aşağıda yazdım. 110 | eigenlayer operator config create 111 | ``` 112 | 113 | > Sırasıyla bunlarıda yazıyorum kolaylık için, en aşağıda görselide olcak: 114 | 115 | > y diyoruz 116 | 117 | > operator adresi olarak, `ecdsa key` oluşturduğumuzda verdiği `evm` adresini girin. 118 | 119 | > earning operator adres yine aynı ecdsa-evm adresi girin, yukarıdaki ile aynı. 120 | 121 | > goerli eth RPC isteyecek, [infuradan](https://app.infura.io/) aldım ben ücretsiz goerli RPC 122 | 123 | > `ecdsa key` oluşturduğumuzda bize verdiği key pathi tam şekilde giriyoruz 124 | 125 | > aynı şekilde `bls key` path giriyoruz - path ne olduğunu bilmeyenler için görsele bakabilir 126 | 127 | > goerli seçiyoruz ve bitiyor. 128 | 129 | > Bu bize operator.yaml ve metadata.json dosyalarını oluşturacak.. 130 | 131 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/28554c5b-873d-4296-8e1b-8cda670c8e6f) 132 | 133 | # 134 | 135 | ### peki metadata'da işlemlerimiz biraz farklı hemen anlatıyorum: 136 | 137 | > `nano metadata.json` komutu ile içeriği kopyalıyoruz. 138 | 139 | > metadata.json içeriğini kendinize göre düzenleyeceksiniz ve public erişilebilir bir yere upload edeceksiniz. 140 | 141 | > Bunun için githubda bir repo oluşturup metadata.json içeriğinizi oraya yazın ve raw linkini kenarda tutabilirsiniz. Hem metadata.json içinde düzenleyeceksiniz hem de github reponuzda. 142 | 143 | > Aşağıya görsel bırakıyorum: 144 | 145 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e44e223f-b94a-43c8-9fc0-b909fc8f1564) 146 | 147 | # 148 | 149 | ### raw'ı hallettiysek kaydımıza devam edelim 150 | 151 | 152 | ```console 153 | # Operator.yaml dosyasını nano ile açıyoruz 154 | nano operator.yaml 155 | ``` 156 | 157 | > Burada yine değişiklik yapacağız 158 | 159 | > `metadata_url` için `metadata.json` dosyamızın public `raw linki` 160 | 161 | > `el_slasher_address` için: 0x3865B5F5297f86c5295c7f818BAD1fA5286b8Be6 162 | 163 | > `bls_public_key_compendium_address` için: 0xc81d3963087Fe09316cd1E032457989C7aC91b19 164 | 165 | > ctrl + x + y ile kaydedip çıkıyoruz. 166 | 167 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e61df955-89ac-4f31-8318-46c013d78817) 168 | 169 | ```console 170 | # operatoru kaydetmeden önce yukarıda aldığınız EVM cüzdanınıza biraz goerli ETH gönderin 171 | # Operatörü kaydediyoruz 172 | eigenlayer operator register operator.yaml 173 | # Loglar aksın başarılı bir şekilde sonlanana kadar müsade edin 174 | 175 | # Durumunu kontrol etmek için 176 | eigenlayer operator status operator.yaml 177 | 178 | # metadata herhangi bir değişiklik yaptığınızda güncellemek için 179 | eigenlayer operator update operator.yaml 180 | ``` 181 | 182 |

Eigen bitti şimdi Mangata AVS

183 | 184 | > reth temini için [buradan](https://app.uniswap.org/swap??outputCurrency=0x178e141a0e3b34152f73ff610437a7bf9b83267a) swap 185 | 186 | > steth temini için [buradan](https://app.uniswap.org/swap??outputCurrency=0x1643e812ae58766192cf7d2cf9567df2c37e9b7f 187 | ) swap 188 | 189 | > Elimizdeki reth ve steth stake etmemiz gerekiyor. 190 | 191 | > Elinizdeki `ecsda private keyi` Metamaska `import` edin ve swap ile temin ettiğiniz tokenleri bu cüzdana gönderin. 192 | 193 | > Sonrasında [buradan](https://goerli.eigenlayer.xyz/) cüzdanı bağlıyoruz ve bu iki poola stake ediyoruz. 194 | 195 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/9eeea1ad-ee92-42b9-b56d-5ed7fe32c632) 196 | 197 | 198 | > Txler onaylandıktan sonra terminalimize dönüyoruz ve AVS operatörümüzü kuruluma geçiyoruz 199 | 200 | ```console 201 | git clone https://github.com/mangata-finance/avs-operator-setup.git 202 | cd avs-operator-setup 203 | chmod +x run.sh 204 | nano .env 205 | ``` 206 | 207 | ![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/009b304b-23ed-4045-b23f-b0593ce76f89) 208 | 209 | ```console 210 | # Üst kısma dokunmuyorsunuz. SADECE: TODO yazan satırın altı bizi ilgilendiriyor. 211 | ETH_RPC_URL= goerli eth rpc http linki 212 | ETH_WS_URL= goerli eth wss linki 213 | # bu linkleri infuradan almıştık, zorlanırsan rues chatten yardım talep edin. 214 | 215 | # key yolundan kastım path, yukarıda öğrenmiştiniz. 216 | ECDSA_KEY_FILE_HOST=/.eigenlayer/operator_keys/.ecdsa.key.json 217 | BLS_KEY_FILE_HOST=/.eigenlayer/operator_keys/.bls.key.json 218 | 219 | # yukarıda bir şifre belirlemiştik her yerde kullandığımız. 220 | ECDSA_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi 221 | BLS_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi 222 | 223 | # ctrl + x + y yapıp kaydedip çıkıyoruz 224 | 225 | # şimdi opt-in yapalım son hamleler.. 226 | ./run.sh opt-in 227 | 228 | # key yolunda, şifrede vs hata yoksa bu adımlardan sonra docker compose up yapıyoruz ve sona geliyoruz. 229 | docker compose up -d 230 | 231 | # bir sorun olup olmadığını kontrol etmek için docker ps ile container id alın 232 | docker logs -f 233 | # container id başta olur ve kurduğunuz node'un isminden hangi id olduğunu anlayabilirsiniz. 234 | ``` 235 | 236 | > Loglarınızı Mangata AVS kanalına atıp rolünüzüde alabilirsiniz. 237 | 238 | > işlemler bu kadardı, sırf sorun var mı diye tekrar test edip kurdum sorun yok çünkü bu repoyu eskiden yazdım. 239 | 240 | > İlla ki eksiğim vardır, PR atarsınız veya ben commitlerim, ben yolculuktayken siz öğrenmeye bakın bir şeyler. 241 | --------------------------------------------------------------------------------