[
  {
    "path": "README.md",
    "content": "<h1 align=\"center\"> Mangata X - AVS </h1>\n\n\n## Notlar:\n\n> 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ı.\n\n> Neden Mangata kuruyor Eigen AVS ekosistemine önem veriyorum [buradan](https://x.com/Ruesandora0/status/1754194993592275362?s=20) okuyabilirsiniz.\n\n> Testnet ne kadar sürürecek bilinmiyor, rewards var evet - KYC olabilir.\n\n> Ayrıca Mangatanın bir tokeni mevcut, yatırımcıları oldukça iyi ileride daha iyi hale gelecek bir protokol ve testnet önemli.\n\n> 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.\n\n> 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\n\n> 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)\n\n#\n\n<h1 align=\"center\"> Donanım </h1>\n\n> Görseldekine benzer bir cihaz yeterli, bunun için [Hetzner](https://github.com/ruesandora/Hetzner) kullanıyorum\n\n<img width=\"782\" alt=\"Ekran Resmi 2024-02-07 13 45 17\" src=\"https://github.com/ruesandora/mangata-AVS/assets/101149671/9c040e48-ca4b-44e2-a777-3a31b6cee06d\">\n\n<h1 align=\"center\"> Kurulum </h1>\n\n```console\n# Güncelleme ve docker kurulumu, komutları sırasıyla girebilirsiniz\nsudo apt update -y && sudo apt upgrade -y\nfor pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done\n\nsudo apt-get update\nsudo apt-get install ca-certificates curl gnupg\nsudo install -m 0755 -d /etc/apt/keyrings\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\n\n# bu komut satırını toplu girebilirsiniz\necho \\\n  \"deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\\n  \"$(. /etc/os-release && echo \"$VERSION_CODENAME\")\" stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n\n# docker güncelleme ve run\nsudo apt update -y && sudo apt upgrade -y\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nsudo docker run hello-world\n\n# Go kurulumu\ncd $HOME\nver=\"1.21.0\"\nwget \"https://golang.org/dl/go$ver.linux-amd64.tar.gz\"\nsudo rm -rf /usr/local/go\nsudo tar -C /usr/local -xzf \"go$ver.linux-amd64.tar.gz\"\nrm \"go$ver.linux-amd64.tar.gz\"\necho \"export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin\" >> $HOME/.bash_profile\nsource $HOME/.bash_profile\ngo version\n```\n\n<h1 align=\"center\"> EigenLayer CLI kurulumu </h1>\n\n```console\n# eigen klonlayalım\ngit clone https://github.com/Layr-Labs/eigenlayer-cli.git\ncd eigenlayer-cli\nmkdir -p build\ngo build -o build/eigenlayer cmd/eigenlayer/main.go\n\n# Binary dosyamızı PATH yoluna gönderiyoruz\ncd\nsudo cp eigenlayer-cli/build/eigenlayer /usr/local/bin/\n```\n\n> Altta ki komutlar ile KEY oluşturuyoruz..\n\n> `ecdsa` KEY bize bir `evm` adresi, `private key` ve dosya `path` (yolu) verecek\n\n> `bls` KEY ise bir `private key` verecek. Hepsini kaydedin.\n\n> Kapalı parantez dahil, `<key-ismi>` değiştirin, <> parantezleri kaldırın..\n\n> Her komuttan sonra şifre oluşturmanızı isteyecek, şifre karmaşık olmalı.\n\n> Örnek şifre DenemeSifre123.,#%\n\n```\neigenlayer operator keys create --key-type ecdsa <key-ismi>\neigenlayer operator keys create --key-type bls <key-ismi>\n```\n\n> Listeleyerek keyleri ve dosya yollarını kontrol edin\n\n```\neigenlayer operator keys list\n```\n\n>  Örnek ecdsa key create çıktısı\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e72d6567-013a-492f-a6e0-1d610a286a45)\n\n\n<h1 align=\"center\"> Operator kaydı </h1>\n\n```console\n# Bu komutun istediği verileri giriyoruz, veriler aşağıda yazdım.\neigenlayer operator config create\n```\n\n> Sırasıyla bunlarıda yazıyorum kolaylık için, en aşağıda görselide olcak:\n\n> y diyoruz\n\n> operator adresi olarak, `ecdsa key` oluşturduğumuzda verdiği `evm` adresini girin.\n\n> earning operator adres yine aynı ecdsa-evm adresi girin, yukarıdaki ile aynı.\n\n> goerli eth RPC isteyecek, [infuradan](https://app.infura.io/) aldım ben ücretsiz goerli RPC\n\n> `ecdsa key` oluşturduğumuzda bize verdiği key pathi tam şekilde giriyoruz\n\n> aynı şekilde `bls key` path giriyoruz - path ne olduğunu bilmeyenler için görsele bakabilir\n\n> goerli seçiyoruz ve bitiyor. \n\n> Bu bize operator.yaml ve metadata.json dosyalarını oluşturacak..\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/28554c5b-873d-4296-8e1b-8cda670c8e6f)\n\n#\n\n### peki metadata'da işlemlerimiz biraz farklı hemen anlatıyorum:\n\n> `nano metadata.json` komutu ile içeriği kopyalıyoruz.\n\n> metadata.json içeriğini kendinize göre düzenleyeceksiniz ve public erişilebilir bir yere upload edeceksiniz.\n\n> 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.\n\n> Aşağıya görsel bırakıyorum:\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e44e223f-b94a-43c8-9fc0-b909fc8f1564)\n\n#\n\n### raw'ı hallettiysek kaydımıza devam edelim\n\n\n```console\n# Operator.yaml dosyasını nano ile açıyoruz\nnano operator.yaml\n```\n\n> Burada yine değişiklik yapacağız\n\n> `metadata_url` için `metadata.json` dosyamızın public `raw linki`\n\n> `el_slasher_address` için: 0x3865B5F5297f86c5295c7f818BAD1fA5286b8Be6\n\n> `bls_public_key_compendium_address` için: 0xc81d3963087Fe09316cd1E032457989C7aC91b19\n\n> ctrl + x + y ile kaydedip çıkıyoruz.\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e61df955-89ac-4f31-8318-46c013d78817)\n\n```console\n# operatoru kaydetmeden önce yukarıda aldığınız EVM cüzdanınıza biraz goerli ETH gönderin\n# Operatörü kaydediyoruz\neigenlayer operator register operator.yaml\n# Loglar aksın başarılı bir şekilde sonlanana kadar müsade edin\n\n# Durumunu kontrol etmek için\neigenlayer operator status operator.yaml\n\n# metadata herhangi bir değişiklik yaptığınızda güncellemek için\neigenlayer operator update operator.yaml\n```\n\n<h1 align=\"center\"> Eigen bitti şimdi Mangata AVS </h1>\n\n> reth temini için [buradan](https://app.uniswap.org/swap??outputCurrency=0x178e141a0e3b34152f73ff610437a7bf9b83267a) swap\n\n> steth temini için [buradan](https://app.uniswap.org/swap??outputCurrency=0x1643e812ae58766192cf7d2cf9567df2c37e9b7f\n) swap \n\n>  Elimizdeki reth ve steth stake etmemiz gerekiyor. \n\n> Elinizdeki `ecsda private keyi` Metamaska `import` edin ve swap ile temin ettiğiniz tokenleri bu cüzdana gönderin.\n\n> Sonrasında [buradan](https://goerli.eigenlayer.xyz/) cüzdanı bağlıyoruz ve bu iki poola stake ediyoruz.\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/9eeea1ad-ee92-42b9-b56d-5ed7fe32c632)\n\n\n>  Txler onaylandıktan sonra terminalimize dönüyoruz ve AVS operatörümüzü kuruluma geçiyoruz\n\n```console\ngit clone https://github.com/mangata-finance/avs-operator-setup.git\ncd avs-operator-setup\nchmod +x run.sh\nnano .env\n```\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/009b304b-23ed-4045-b23f-b0593ce76f89)\n\n```console\n# Üst kısma dokunmuyorsunuz. SADECE: TODO yazan satırın altı bizi ilgilendiriyor.\nETH_RPC_URL= goerli eth rpc http linki\nETH_WS_URL= goerli eth wss linki\n# bu linkleri infuradan almıştık, zorlanırsan rues chatten yardım talep edin.\n\n# key yolundan kastım path, yukarıda öğrenmiştiniz.\nECDSA_KEY_FILE_HOST=/.eigenlayer/operator_keys/<key-name>.ecdsa.key.json\nBLS_KEY_FILE_HOST=/.eigenlayer/operator_keys/<key-name>.bls.key.json\n\n# yukarıda bir şifre belirlemiştik her yerde kullandığımız.\nECDSA_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi\nBLS_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi\n\n# ctrl + x + y yapıp kaydedip çıkıyoruz\n\n# şimdi opt-in yapalım son hamleler..\n./run.sh opt-in\n\n# key yolunda, şifrede vs hata yoksa bu adımlardan sonra docker compose up yapıyoruz ve sona geliyoruz.\ndocker compose up -d\n\n# bir sorun olup olmadığını kontrol etmek için docker ps ile container id alın\ndocker logs -f <container_id>\n# container id başta olur ve kurduğunuz node'un isminden hangi id olduğunu anlayabilirsiniz.\n```\n\n> Loglarınızı Mangata AVS kanalına atıp rolünüzüde alabilirsiniz.\n\n> işlemler bu kadardı, sırf sorun var mı diye tekrar test edip kurdum sorun yok çünkü bu repoyu eskiden yazdım.\n\n> İlla ki eksiğim vardır, PR atarsınız veya ben commitlerim, ben yolculuktayken siz öğrenmeye bakın bir şeyler.\n"
  },
  {
    "path": "auto-restart/README.MD",
    "content": "# Mangata-AVS Operatörü Otomatik Yeniden Başlatma\n\nBu 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).\n\n**Not:**\n\n* Bu komut dosyası, kullanıcının docker kullanıcı grubuna eklenmesini gerektirir.\n* Gerekli izinlere sahip değilseniz komut dosyası başarısız olabilir.\n\n## Kurulum\n```bash\n## Repoyu klonlama\ngit clone https://github.com/walter-s0bch4k/mangata-AVS-with-auto-restart.git\n# İndirilen repoda doğru klasöre gidin\ncd mangata-AVS-with-auto-restart/auto-restart\n# Eğer repoyu farklı bir adresten indirdiyseniz, lütfen indirdiğiniz adresin dosya isimlerini kontrol ederek\n# İçerisinde `requirements.txt` ve `restart_container_if_err.py` dosyaları olan klasöre gidin.\n# Doğru yerde olduğunuzu kontrol etmek için\nls -al\n# Komutunun çıktısında `requirements.txt` ve `restart_container_if_err.py` dosyalarını görmelisiniz.\n\n## pip Kurulumu\n# pip kurulum komut dosyasını indirin\ncurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py\n# Komut dosyasını çalıştırın, python3'ü python ile değiştirmeniz gerekebilir\nsudo python3 get-pip.py\n\n## Docker Ayarları\n# docker kullanıcı grubu oluşturun\nsudo groupadd docker\n# Mevcut kullanıcıyı docker grubuna ekleyin\nsudo usermod -aG docker $USER\n# Bu adımdan sonra hesabınızdan çıkıp tekrar giriş yapmanız gerekmektedir.\n# Uzak bağlantı kullanıyorsanız bağlantıyı kapatıp tekrar bağlanmayı deneyebilirsiniz.\n\n## Komut Dosyasını Çalıştırma\n# Gerekli paketleri kurun\npip install -r requirements.txt\n# Arka planda çalışması için nohup kullanın, bağlantınız kesilse bile çalışmaya devam eder\nnohup python3 -u restart_container_if_err.py > logs.txt &\n# Logları kontrol edin. İçeriği dikkatlice okuyun, hata olmamalıdır. \ncat logs.txt\n\n## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n## Konteyneri manuel olarak yeniden başlattıysanız veya kapattıysanız işlemi sonlandırın!\n# PID'yi alın\nps -aux | grep restart_container_if_err.py\n# Ardından işlemi sonlandırın\nkill -9 <PID>\n```"
  },
  {
    "path": "auto-restart/README_en.md",
    "content": "# Mangata-AVS Operator Auto Restart\n\nThis 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).\n\n**Note:**\n\n* This script requires the user to be added to the `docker` user group.\n* The script may fail if you don't have the required permissions.\n\n## Installation\n```bash\n## Cloning repository\ngit clone https://github.com/walter-s0bch4k/mangata-AVS-with-auto-restart.git\n# Change directory to downloaded repository\ncd mangata-AVS-with-auto-restart\n# If you downloaded the repo from a different location, please navigate to the folder containing the\n# `requirements.txt` and `restart_container_if_err.py` files by checking the file names in the download location.\n# To verify you are in the correct location, run the following command:\nls -al\n# You should see the `requirements.txt` and `restart_container_if_err.py` files in the output of the command.\n\n## Installing pip \n# Get pip installation script\ncurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py\n# Execute script to install, you might need to replace python3 to python etc.\nsudo python3 get-pip.py\n\n## Docker settings\n# Create docker user group\nsudo groupadd docker\n# Add current user to docker group\nsudo usermod -aG docker $USER\n\n## Executing the script\n# Install required packages\npip install -r requirements.txt\n# Execute using nohup to make it run in background even if you disconnect\nnohup python3 -u restart_container_if_err.py > logs.txt &\n# Checking logs. Please read content carefully, there should be no errors. \ncat logs.txt\n\n## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n## Kill the process if you manually restart container or close it!\n# Get PID by\nps -aux | grep restart_container_if_err.py\n# Then kill process\nkill -9 <PID>\n```"
  },
  {
    "path": "auto-restart/requirements.txt",
    "content": "certifi==2024.2.2\ncharset-normalizer==3.3.2\ndocker==7.0.0\nidna==3.6\npackaging==23.2\nrequests==2.31.0\nurllib3==2.2.0\n"
  },
  {
    "path": "auto-restart/restart_container_if_err.py",
    "content": "import json\nimport docker\n\nfrom datetime import datetime\n\nclient = docker.from_env()  # Connect to the local Docker daemon\n\nif __name__ == \"__main__\":\n\n    # Replace with your actual container name\n    container_name = \"mangata-finalizer-node\"\n    container = client.containers.get(container_name)\n    print(\"Script started!\")\n    print(\"Container State: \", container.attrs['State'])\n\n    while True:\n        # We assume that container is already up and running\n        # It is restarted if \"connection is shut down\" error is encountered in the logs\n        if container.attrs['State']['Restarting'] == True or container.attrs['State']['Status'] == \"restarting\":\n            pass  #  If state is restarting do nothing\n        else:\n            try:\n                script_initalized = datetime.now()  #  Required to filter logs by time\n                for line in container.logs(stream=True, follow=True, since=script_initalized):\n                    decoded_line = line.decode('utf-8').strip().split(\"\\t\")\n                    if len(decoded_line) > 1 and decoded_line[1] == \"INFO\":\n                        try:  # Required to suppress errors raised by json package\n                            message = json.loads(decoded_line[-1])\n                            if \"err\" in message:\n                                if message[\"err\"] == \"connection is shut down\":\n                                    print(\"Restart required!\")\n                                    print(decoded_line[0], message)\n                                    container.restart()\n                                    break\n                                else:\n                                    print(decoded_line[0], message)\n                        except Exception as e:\n                            pass\n\n            except Exception as e:\n                print(f\"Error: {e}\")\n                break  #  Terminate\n"
  },
  {
    "path": "güncelleme.md",
    "content": "// mevcut avs-operator-setup klasörü içindeki .env dosyasını yedek alın\n\n```\ncd avs-operator-setup\n\ndocker-compose down\n\ngit reset --hard\n\ngit pull\n\ngit checkout tags/v0.2 -b v0.2\n```\n\n//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\n  \n``` \ndocker-compose pull\n\ndocker-compose up -d\n\ndocker logs -f avs-finalizer-node\n```\n\n\n## Readonly hatası alıyorsanız:\n\n```\n# operatörü durdur\ndocker-compose down\n```\nDocker config dosyasına giriyoruz\n```\nnano docker-compose.yml\n```\n\nConfig dosyasının içindeki iki satırın sonunda `:readonly` ibaresini siliyoruz. Sonrası Ctrl + X -> y -> Enter\n\nOperatörü yeniden başlatıyoruz:\n```\ndocker-compose up -d\n```"
  },
  {
    "path": "node taşıma.md",
    "content": "<h1>mangata-avs-node-tasima-</h1>\n\n## \n> cc: [ruesandora](https://github.com/ruesandora/mangata-AVS)\n\n> Kendi node'umu taşırken size yardımcı olması için bir repo yaptım.\nBaşlayalım.( Önceki kurulumunuz başarılı değilse bu repo sizin için uygun değildir. )\n\n```console\n# Öncelikle eski sunucunuza bu komutları uygulayın.\ncd avs-operator-setup\ndocker ps -a\ndocker stop <containerid> ( tırnakları kaldırıp aldığımız iki adet container id'i ayrı ayrı komut olarak girelim. )\n\n# Güncelleme ve docker kurulumu, komutları sırasıyla girebilirsiniz\nsudo apt update -y && sudo apt upgrade -y\nfor pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done\n\nsudo apt-get update\nsudo apt-get install ca-certificates curl gnupg\nsudo install -m 0755 -d /etc/apt/keyrings\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\n\n# bu komut satırını toplu girebilirsiniz\necho \\\n  \"deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\\n  \"$(. /etc/os-release && echo \"$VERSION_CODENAME\")\" stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n\n# docker güncelleme ve run\nsudo apt update -y && sudo apt upgrade -y\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nsudo docker run hello-world\n\n# Go kurulumu\ncd $HOME\nver=\"1.20.2\"\nwget \"https://golang.org/dl/go$ver.linux-amd64.tar.gz\"\nsudo rm -rf /usr/local/go\nsudo tar -C /usr/local -xzf \"go$ver.linux-amd64.tar.gz\"\nrm \"go$ver.linux-amd64.tar.gz\"\necho \"export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin\" >> $HOME/.bash_profile\nsource $HOME/.bash_profile\ngo version\n```\nEigenLayer CLI kurulumu\n```console\n# eigen klonlayalım\ngit clone https://github.com/Layr-Labs/eigenlayer-cli.git\ncd eigenlayer-cli\nmkdir -p build\ngo build -o build/eigenlayer cmd/eigenlayer/main.go\n\n# Binary dosyamızı PATH yoluna gönderiyoruz\ncd\nsudo cp eigenlayer-cli/build/eigenlayer /usr/local/bin/\nmkdir -p /root/.eigenlayer/operator_keys\n```\n\n<h2> Simdi burada önemli bir kısım var. Burayı dikkatli yapalım. </h2>\n\n```console\n# keylerimizi yeni sunucumuza import edelim.(parantezler olmadan)\n#ecdsa key için aşağıdaki komut.\neigenlayer operator keys import --key-type ecdsa <keyname> <privatekey>\n\n# bls key için aşağıdaki komut.\neigenlayer operator keys import --key-type bls [keyname] [privatekey] \n\n# bu komut ile keylerimizi kontrol edelim.doğru ise devam.\neigenlayer operator keys list\n\n# keylerimizi taşımış olduk.\n\n```\nOperator kaydı\n```console\n# Bu komutun istediği verileri giriyoruz, veriler aşağıda yazdım.\neigenlayer operator config create\n```\n\n> Sırasıyla bunlarıda yazıyorum kolaylık için, en aşağıda görselide olcak:\n> y diyoruz\n> operator adresi olarak, `ecdsa key` oluşturduğumuzda verdiği `evm` adresini girin.\n> earning operator adres yine aynı ecdsa-evm adresi girin, yukarıdaki ile aynı.\n> goerli eth RPC isteyecek, [infuradan](https://app.infura.io/) aldım ben ücretsiz goerli RPC\n> `ecdsa key` oluşturduğumuzda bize verdiği key pathi tam şekilde giriyoruz\n> aynı şekilde `bls key` path giriyoruz - path ne olduğunu bilmeyenler için görsele bakabilir\n> goerli seçiyoruz ve bitiyor. \n> Bu bize operator.yaml ve metadata.json dosyalarını oluşturacak..\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/28554c5b-873d-4296-8e1b-8cda670c8e6f)\n\n#\n\n```console\n# Operator.yaml dosyasını nano ile açıyoruz\nnano operator.yaml\n```\n\n> Burada yine değişiklik yapacağız\n> `metadata_url` için `metadata.json` dosyamızın public `raw linki`\n> `el_slasher_address` için: 0x3865B5F5297f86c5295c7f818BAD1fA5286b8Be6\n> `bls_public_key_compendium_address` için: 0xc81d3963087Fe09316cd1E032457989C7aC91b19\n> ctrl + x + y ile kaydedip çıkıyoruz.\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/e61df955-89ac-4f31-8318-46c013d78817)\n\n```console\n# daha önceden register ettiğimiz için tekrar etmemize gerek yok.\n# Durumunu kontrol etmek için\neigenlayer operator status operator.yaml\n\n# metadata herhangi bir değişiklik yaptığınızda güncellemek için\neigenlayer operator update operator.yaml\n```\nEigen bitti şimdi Mangata AVS\n```console\ngit clone https://github.com/mangata-finance/avs-operator-setup.git\ncd avs-operator-setup\nchmod +x run.sh\nnano .env\n```\n\n![image](https://github.com/ruesandora/mangata-AVS/assets/101149671/009b304b-23ed-4045-b23f-b0593ce76f89)\n\n```console\n# Üst kısma dokunmuyorsunuz. SADECE: TODO yazan satırın altı bizi ilgilendiriyor.\nETH_RPC_URL= goerli eth rpc http linki\nETH_WS_URL= goerli eth wss linki\n# bu linkleri infuradan almıştık, zorlanırsan rues chatten yardım talep edin.\n\n# key yolundan kastım path, yukarıda öğrenmiştiniz.\nECDSA_KEY_FILE_HOST= eigen cli kurulumda aldığımız ecdsa key yolumuz\nBLS_KEY_FILE_HOST= eigen cli kurulumda aldığımız bls key yolumuz\n\n# yukarıda bir şifre belirlemiştik her yerde kullandığımız.\nECDSA_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi\nBLS_KEY_PASSWORD= eigen cli kurulumda belirlediğimiz karmaşık key şifresi\n\n# ctrl + x + y yapıp kaydedip çıkıyoruz\n\n# şimdi opt-in yapalım son hamleler..\n./run.sh opt-in\n\n# key yolunda, şifrede vs hata yoksa bu adımlardan sonra docker compose up yapıyoruz ve sona geliyoruz.\ndocker compose up -d\n\n# bir sorun olup olmadığını kontrol etmek için docker ps ile container id alın\ndocker logs -f <container_id>\n# container id başta olur ve kurduğunuz node un isminden hangi id olduğunu anlayabilirsiniz.\n```\n"
  }
]