Repository: ruesandora/Rivalz
Branch: main
Commit: 8f88a8fd4b61
Files: 20
Total size: 60.7 KB
Directory structure:
gitextract_pxohq7h1/
├── Asissterr.md
├── AutoFragClaim.md
├── AutoFragmentzV2.md
├── Koii.md
├── Network3 ubuntu kurulumu
├── Network3-Ubuntu.md
├── Nodepay-cli.md
├── OasisTerminal.md
├── README.md
├── UbuntuKurulumu.md
├── Yancıklar.md
├── auto refresher.html
├── nodepay_console.md
├── oasis.sh
├── oasis_terminal.js
├── rivalz-cli.md
├── snapshot-alma.md
├── ubunturc.md
├── update_token.js
└── znode.md
================================================
FILE CONTENTS
================================================
================================================
FILE: Asissterr.md
================================================
> Rivalz sunucularınızda Asissterr otomatik claimlesin siz uğraşmayın.
> Edge'den [Asissterr](https://x.com/Ruesandora0/status/1808228728889033005)'i açın.
> Phantom ile bağlanın ve bir extensionda oto claim'i kurun alttaki kod iile.
#
```
function dailyClaim() {
// Butonun sınıf adını kullanarak butonu seç
var claimButton = document.querySelector("button.inline-flex.items-center.justify-center.whitespace-nowrap.rounded-md.text-sm.font-medium.ring-offset-background.transition-colors.disabled\\:pointer-events-none.disabled\\:opacity-50.focus-visible\\:outline-\\[darkgrey\\].border.border-input.bg-background.hover\\:bg-accent.hover\\:text-accent-foreground.h-10.px-4.py-2.mt-4.md\\:mt-12.max-w-96.w-full");
if (claimButton) {
claimButton.click();
console.log("Daily claim yapıldı");
} else {
console.log("Daily claim butonu bulunamadı");
}
}
// 12 saatlik (43200000 ms) süreyle tekrarla
setInterval(dailyClaim, 43200000);
// İlk başlatma
dailyClaim();
```
#

Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘allow pasting’ below and hit Enter to allow pasting.Understand this warning
hatası alanlar consola allow pasting yazarak hatayı geçebilir.
================================================
FILE: AutoFragClaim.md
================================================
# Fragmentz Auto Claim Bot
Bildiğiniz gibi Rivalz için client çalıştırıyoruz.
Bunun yanında Fragment NFT'leri claim ederek gelecekte Intel Indirimi alacağız.
COMMON, MID, RARE, ULTRA ve HYPER olarak 5 adet NFT özelliği bulunmakta ve bu özelliklerinin her birinin indirim oranı farklı şekilde olmakta.
NFT'leri claim edebilmek için faucetten alınmış tokeniniz olması gerekmektedir.
## Gereksinimler
```
sudo apt update
sudo apt upgrade -y
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.9 python3.9-venv python3.9-dev
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
```
## Kurulum
Eğer tüm gereksinimler yüklüyse öncelikle gerekli dosyalarımızı çekelim.
```bash
git clone https://github.com/Dtractus/DTRivalz.git
```
İndirdiğimiz dosyanın içerisine girelim.
```bash
cd DTRivalz
```
Bağlı olan cüzdanınızdan claim işlemi yapılması için cüzdanınızın private key'i gereklidir.
Bu private key'i .env dosyası içerisinde saklayacağız.
Buradaki cüzdan/sunucu güvenliği tamamen sizin sorumluluğunuzda, ona göre.
Aşağıdaki kodu kullanarak .env dosyamızın içerisine girelim ve sadece en baştaki PRIVATE_KEY kısmını dolduralım. Herhangi bir şekilde tırnak işareti kullanmanıza gerek yok.
```bash
nano .env
```
Yazdıktan sonra CTRL + X ardından Y diyerek dosyamızı kaydedelim.
Ardından docker ile built edelim;
```bash
docker build -t dtrivalz .
```
Başarıyla built ettiysek artık çalıştırabiliriz;
```bash
docker run -d --env-file .env --name autofrag dtrivalz
```
Tebrikler, başarıyla container'ı oluşturdunuz. Container'ı kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
```bash
docker logs -f autofrag
```
## Geri Bildirim
Herhangi bir geri bildiriminiz varsa, lütfen dtractus@gmail.com adresinden bana ulaşın.
================================================
FILE: AutoFragmentzV2.md
================================================
# **Rivalz Fragmentz v2 Oto Claim Bot**
Bu repo, **Rivalz AI** platformunda **Fragmentz v2** token'larını otomatik olarak mintlemek (claim etmek) için geliştirilmiş bir Python botudur. Bot, kullanıcıya kolay bir kurulum ve kullanım deneyimi sunmayı amaçlar.
## **Özellikler**
- **Rainbow Wallet**'ı otomatik olarak indirir, başlatır ve cüzdanı içe aktarır.
- **Rivalz2** ağını cüzdana ekler.
- Web3 ile cüzdan bakiyesi sorgulaması yapar.
- **Fragmentz v2** token'larını mintler (claim eder).
- Kullanıcıdan sadece gerekli bilgilerin girilmesini bekler ve tüm işlemleri otomatik olarak yapar.
---
## **Gereksinimler**
### **Yazılım Gereksinimleri**
Botu çalıştırmak için aşağıdaki yazılımlar gereklidir:
- **Python 3** (Python 3.6 ve üzeri - Otomatik yüklenir)
- **pip** (Python paket yöneticisi - Otomatik yüklenir)
- **Gerekli pip Paketleri** selenium web3 python-dotenv webdriver-manager pyvirtualdisplay termcolor (Otomatik yüklenir)
- **Google Chrome** (Chrome tarayıcısı - Otomatik yüklenir)
- **ChromeDriver** (Webdriver - Otomatik yüklenir)
- **Xvfb Sanal Ekran** (Otomatik yüklenir)
- **Rainbow Wallet** Chrome uzantısı (Otomatik yüklenir)
### **Kurulum Adımları**
Aşağıdaki adımları izleyerek gerekli yazılımları otomatik olarak kurabilir ve botu çalıştırabilirsiniz.
---
### **1. Otomatik Kurulum için Script Kullanımı**
#### **Linux/Mac Kullanıcıları için**
Linux veya Mac işletim sisteminde kurulum ve çalışma için aşağıdaki script'i kullanabilirsiniz:
1. Repoyu sunucunuza klonlayın:
```bash
git clone https://github.com/mehmet0150/Rivalz-Oto-Claim.git
```
2. Yeni bir screen oluşturun:
```bash
screen -S fragmentz-mk
```
3. ilgili klasöre girin:
```bash
cd Rivalz-Oto-Claim
```
4. Otomatik kurulum dosyasına gerekli yetkiyi verin ve çalıştırın:
```bash
chmod +x install_and_run.sh # Script'e çalıştırma izni ver
./install_and_run.sh # Script'i çalıştır
```
5. Bot çalışmaya başladıktan sonra screen'den `ctrl` + `a` + `d` ile çıkış yapın.
6. Botun çalışması için gerekli olan **Rivalz test ethereumlarını** cüzdanınıza sıklıkla almayı unutmayın.
### **2. .env Dosyasını Oluşturma ve Dosyanın İçeriği**
Script çalıştırıldığında öncelikle gerekli yazılımları kuracak ardından kullanıcıdan **Private Key** ve **Password** bilgileri istenecektir. Bu bilgiler `.env` dosyasına kaydedilecektir.
Botun çalışabilmesi için aşağıdaki iki bilgi script tarafından `.env` dosyasına otomatik olarak eklenecektir:
- **PRIVATE_KEY**: Fragmentz v2 için kullanmak istediğiniz cüzdanınızın private key'i. Bu, Web3 ile cüzdanı içe aktarmak için gereklidir.
- **PASSWORD**: Rainbow Wallet cüzdanının şifresi.
Örnek `.env` dosyası:
```env
PRIVATE_KEY=your_private_key_here
PASSWORD=your_wallet_password_here
```
Script'in sonunda bot otomatik olarak çalışacaktır.
**Not: Cüzdanınızın güvenliği tamamen size aittir. Otomasyon verdiğiniz Private Key ile sadece mintleme işlemi yapmak üzere tasarlanmıştır. Bu botu indirip kullanıyorsanız bu sorumluluğu alıyorsunuz demektir.**
---
### **Kodun Çalışması**
#### **Botun Adımları:**
1. **Rainbow Wallet**'ı başlatır ve cüzdanınızı içe aktarır.
2. **Rivalz2** ağını cüzdanınıza ekler.
3. **Cüzdan bakiyesi** sorgulanır (Rivalz eth_balance).
4. **Fragmentz v2 mintleme** işlemi yapılır.
5. Tüm bu işlemler başarıyla tamamlandıktan sonra, bot otomatik olarak bekleme durumuna geçer ve bir soanraki mintleme zamanını beklemeye başlar. İşlemler sırasında beklenmeyen bir hata oluşursa bot sona erer. Zaman zaman botu kontrol etmeniz sorunlara erken müdahale etme imkanı sağlar.
#### **Scriptin Çalıştırılması:**
Botu ilk çalıştırmada **install_and_run.sh** (Linux/Mac) ile başlatmanız gerekir. Bot, gerekli yazılımları yükleyecek, `.env` dosyasını oluşturacak ve ardından işlemlere başlayacaktır. Otomasyon herhangi bir zamanda hata verip kapanırsa **Rivalz-Oto-Claim** klasöründe olduğunuzdan emin olduktan sonra **./rivalz-oto-claim.py** komutu ile tekrar çalıştırabilirsiniz. Eğer her şey doğru şekilde yapılandırıldıysa mintleme işlemleri kaldığı yerden devam edecektir.
---
## **Yazılımın Çalışması**
### **Otomasyon Adımları ve İşleyişi:**
1. **Rainbow Wallet Setup**: Rainbow Wallet cüzdanınız otomatik olarak içe aktarılır. Private Key ve Password bilgilerinizi kullanarak cüzdanı güvenli bir şekilde cüzdana aktarırsınız.
2. **Yeni Ağ Ekleme**: `Rivalz2` ağı cüzdanınıza otomatik olarak eklenir.
3. **Cüzdan Bağlantısı**: Bot, cüzdanınızı Rivalz platformuna bağlar.
4. **"Rivalz ETH" Bakiye Sorgulama**: Yeterli "Rivalz ETH" bakiyesi olup olmadığı sorgulanır. İşlem ücretlerini karşılayacak yeterli ETH yoksa, bot 30 saniye aralıklarla bakiye kontrolü yapar. Yeterli bakiye oluşması durumunda işlemlerine otomatik olarak devam eder.
5. **Fragmentz v2 Mintleme**: Yeterli ETH bakiyesi varsa, Fragmentz token'larını mintleme işlemi başlatılır.
- **Mintleme Sayısı**: Bot, mintlenebilir Fragmentz sayısını kontrol eder.
- **Mintleme**: Token'lar başarılı bir şekilde mintlendikten sonra, işlem tamamlanır.
---
## **Sorun Giderme (Troubleshooting)**
Eğer bot çalışırken herhangi bir sorunla karşılaşırsanız, aşağıdaki adımları izleyebilirsiniz:
1. **Python veya pip eksikse**: Script, eksik Python veya pip'i otomatik olarak yüklemeyi deneyecektir.
2. **ChromeDriver Hatası**: Eğer ChromeDriver ile ilgili bir hata alırsanız, bot otomatik olarak gerekli sürümü yüklemeye çalışacaktır.
3. **Cüzdan Bağlantısı Sorunu**: Eğer cüzdanınız bağlanmazsa, `.env` dosyasındaki bilgileri tekrar kontrol edin ve doğru girildiğinden emin olun.
---
Bu README, botun nasıl kurulacağını, çalıştırılacağını ve yapılandırılacağını adım adım açıklar. Yalnızca belirtilen script'leri çalıştırarak, botu kolayca kurabilir ve kullanabilirsiniz.
================================================
FILE: Koii.md
================================================
# Yancık-4
> Hali hazırda olan sunucularımıza Koii Node'u kurulumu.
> Yakında Linux kurulumu da hazırlarız.
> Şimdilik detaylı incelemeden kurulum şeklinde paylaşıyorum.
> Zamanla bir çok alternatif paylaşırım.
> Tüm Rivalz sunucularına kurulabilir.
# Kurulum
> Rivalz sunucumuza bağlanıyoruz remote desktop ile.
> Koii'de mümkün mertebe ne kadar token toplayabiliyorsanız o kadar iyi.
> [Buradan](https://www.koii.network/node?promo=92E8B4895861) indiriyoruz.
> Kurulumda yeni bir key oluşturuyoruz diyerek cüzdan açalım pinimizi belirledikten sonra.
> Akabinde Finnie extension'ı [buradan](https://chromewebstore.google.com/detail/finnie/cjmkndjhnagcfbpiemnkdpomccnjblmj) ana pc'den indirelim (Bu bir wallet node extension değil)
> Cüzdanı import edelim Finnie'ye ve faucet alalım [buradan](https://faucet.koii.network/faucet).
> İlk önce Mail verify edelim, akabinden ref code sanırım 5 token veriyor: `92E8B4895861`
> Mail onaylamadan ref: alma/verme olmuyor gördüğüm.
> Tüm tokenleri topladıktan sonra (Bazıları problemli ama çözülüyor bi şekilde)
> Akabinde Koii Node aktif edip tokenlerin istediğimiz kadarını stake edelim.
> Tasklar gelirse RUN edelim. (Burada taskları incelemedim bazılarına asla bulaşmazdım)
#
> Seting kısmı bu şekilde olsun.
*
*
#
> Şu an node çalışır durumda
#
> tokenomics: https://www.koii.network/whitepaper.pdf
================================================
FILE: Network3 ubuntu kurulumu
================================================
# Network3-ubuntu-kurulum
oncelikle dosyayi sunucumuza indiriyoruz
```console
wget https://network3.io/ubuntu-node-v1.1.tar
```
dosyayi cikaralim
```console
tar -xf ubuntu-node-v1.1.tar
```
dizine gecis yapalim
```console
cd ubuntu-node
```
nodu baslatalim
```console
sudo bash manager.sh up
```
node is ready mesajini gorduk mu tamamdir
simdi panelden kontrol edelim puanimizi tarayicimiza asagidaki linki duzenleyip yapistiralim
```console
https://account.network3.ai/main?o=sunucu-ip:8080
```
E-postanızı bağlamak isterseniz, önce e-postanızla panele giriş yapın. Sonra kontrol panelinde current node yazan yerde '+' düğmesine tıklayın. Açılan kutuya nodun özel anahtarını girebilirsiniz. Nodu bağlamak için özel anahtarı şu komutla alabilirsiniz
```console
sudo bash manager.sh key
```
================================================
FILE: Network3-Ubuntu.md
================================================
# Network3 Ubuntu Kurulum Rehberi
### Node'u İndirme
1. **Tar Dosyasını İndirin:**
- `wget` komutunu kullanarak tar dosyasını indirin:
```bash
wget https://network3.io/ubuntu-node-v1.1.tar
```
### Node'u Kurma
2. **Tar Dosyasını Çıkartın:**
- `tar` komutunu kullanarak tar dosyasını çıkartın:
```bash
tar -xf ubuntu-node-v1.1.tar
```
- Bu komut `ubuntu-node` adında bir dizin oluşturacaktır.
3. **`ubuntu-node` Dizine Geçin:**
- Yeni oluşturulan `ubuntu-node` dizinine geçin:
```bash
cd ubuntu-node
```
4. **Node'u Başlatın:**
- Node'u başlatmak için `manager.sh` scriptini çalıştırın:
```bash
sudo bash manager.sh up
```
- Terminalde `node is ready` ifadesini görene kadar bekleyin, bu node'un başarıyla başlatıldığını gösterir.
- line:50 ifconfig not found hatası alanlar uygulasın.
```bash
cd
sudo apt-get update
sudo apt-get install net-tools
/sbin/ifconfig eth0 up
```
- wg0 hatası alanlar kurulumu baştan yapsın o zaman hata kalkıyor
### Dashboard'a Erişme
2. **Başka Bir Makinede Tarayıcı Açın:**
- Başka bir makinede herhangi bir web tarayıcısını açın.
3. **Dashboard URL'sini Ziyaret Edin:**
- Şu URL'ye gidin:
```plaintext
https://account.network3.ai/main?o=xx.xx.xx.xx:8080
```
- `xx.xx.xx.xx` kısmını Ubuntu makinenizin gerçek IP adresiyle değiştirin.
Sitede "Current Node" sağ tarafında + butona basınca bizden private key isteyecek şimdi onu alacağız. Terminale dönüyoruz.
```bash
sudo bash manager.sh key
```
Private keyimizi aldık tarayıcıya dönüp yapıştıralım. Kurulumu tamamlıyoruz.
Bu URL, diğer makineden Ubuntu node'unun dashboard'ına erişim sağlar.
---
================================================
FILE: Nodepay-cli.md
================================================
# Kurulum Talimatları
1. Güncelleme:
```bash
sudo apt update && sudo apt upgrade -y
```
2. `curl` paketini yükleyin:
```bash
sudo apt install curl -y
```
3. `nodepay_setup.sh` scriptini indirin:
```bash
curl -O https://gist.githubusercontent.com/Bo0tstrap/479627be43db165b4016291ff76ea2f1/raw/eed5ade7f5aee685db1fd50ddbe60c324e209cf8/nodepay_setup.sh
```
4. İndirilen script'e çalıştırma izni verin:
```bash
chmod +x nodepay_setup.sh
```
5. Yeni bir `screen` başlatın:
```bash
screen -S nodepay
```
6. Scripti çalıştırın:
```bash
./nodepay_setup.sh
```
7. Gerekli izni verin:
```bash
chmod +X Nodepay-cli/nodepay.py
```
8. Scripti çalıştırın:
```bash
python3 Nodepay-cli/nodepay.py
```
Son komutta sizden np token isteyecek, nodepay dashboard a girip F12 yapıp şu kırmızı ile işaretlediğim yerden alın (np token limiti 14 gün maalesef yani 14 günde bir yenilemeniz gerekiyor)

Eğer 8. adımda `No module named loguru` adında bir hata alıyorsanız bu paketi yükleyip tekrar deneyin :
```bash
pip install loguru --break-system-packages
```
================================================
FILE: OasisTerminal.md
================================================
# Oasis Terminal

Oasis Terminal'e hoş geldiniz! Bu README, Ubuntu sisteminde update_token.js ve oasis_terminal.js komut dosyalarının kurulumunu ve kullanımını adım adım açıklayacaktır.
## Gereklilikler
Başlamadan önce, Ubuntu sisteminizde aşağıdaki önkoşulların yüklü olduğundan emin olun:
Node.js\
npm
## Oasis.ai hesabınız yoksa aşağıdaki linkten açın:
[KAYIT OL](https://github.com/ruesandora/Rivalz/blob/main/Yanc%C4%B1klar.md#oasisai)
### Scripti Çalıştıralım
```
wget https://raw.githubusercontent.com/ruesandora/Rivalz/main/oasis.sh
```
> izinleri verelim ve çalıştıralım.
```
chmod +x oasis.sh
./oasis.sh
```
>screen oluşturalım:
```
screen -S oasis
```
>oasis dizinine geçin:
```
cd oasis
```
>update_token.js komut dosyasını çalıştırmak için aşağıdaki komutu çalıştırın:\
```
node update_token.js
```
E-postanızı, şifrenizi ve istemci adınızı girmek için istemleri izleyin.
Komut dosyası giriş yapacak, uzantı tokenini alacak ve bu token ile database.js dosyasını oluşturacaktır.
### Oasis Terminal'i Çalıştırma
>Terminalde hala oasis dizininde olduğunuzdan emin olun.\
>Oasis Terminal'i başlatmak için aşağıdaki komutu çalıştırın:\
```
node oasis_terminal.js
```
Screendan CTRL A + D ile çıkalım.
Artık hazırsınız! Oasis Terminal ile mutlu puan kazanmalar dilerim!
================================================
FILE: README.md
================================================
Rivalz
> Selamlar, teşvikli Rivalz node va app testleri yaptım. Katılırken bir çok şey öğreneceğinizi düşünüyorum
> Ben hetzner'den yaptım bunu fakat kendi sunucu sağlayacınızda da benzer şeyleri yaparsınız (olmadı contabocular pR atar)
> Donanım kısmı için her sunucu olur, sunucunuz ne kadar iyise o kadar rewards demek, miner olcaz sonuçta..
#
Hetzner VPS Windows Kurulumu
Sadece Hetner VPS için geçerlidir
> Windows Server 2019 Englishi bul - Mouth butonuna tıkla - 3. numarada ki ikona tıkla ve sunucuna bağlan

> Açılan yeni sekmede sunucu bilgilerinizi girmenizi isteyecek.
> Açılan sekmede Ctrl + Alt + Del butonu var sağ altta, tıklıyoruz sonrasında windows kurulumu başlayacak.
> Gui seçeneğini seçmeyi unutmuyoruz.
> Sonrasında mavi arkaplanlı kısıma geçicek hiç bir ayarı değiştirmeden Nexte bas ardından Install Now butonuna tıklıyoruz.
> Sonrasında 2. sıradaki Desktop Experince yazana tıklıyoruz.

> Sonraki aşamada Custom: Install Windows only yazana tıkla ve Hetzner paneline geri dön.
> Bu sefer Iso Images kısmına Virtio yazın ve fotodaki işaretli sürümü mounth edin.

> Sunucuya geri dönün ve Load Driver butonuna tıklayın, ardından görseldeki sürümü seçin.

> 3 Tane Driver göreceksiniz 3üne de delete işlemi yapın.
> Silme işlemi bittikten sonra New butonuna tıkla ve herhangi bir ayarı değiştirmeden direk Apply butonuna basalım.
> Sonrasında gelen uyarıda yes butonuna tıklayalım.

> Şimdi Hetzner Paneline tekrar dönüyoruz Iso images kısmına tıklıyoruz.
> Ve arama yerinden Windows Server 2019 Englishi tekrar mounth et.

> Sunucuya geri dön, Refresh butonuna bas Next butonuna bas. Windowsun kurulmasını bekle.

> Sunucumuza off/on yapıyor tekrar bağlanıyoruz.
> Akabinde şifre belirleme alanı geliyor burda 8 haneli bir şifre girin büyük harf istiyor

> Windowsun kilit ekranı kısmına geldiğinizde sağ alttaki Ctrl + Alt + Del butonuna tıklayın ve masaüstüne geçiş yapın.
> İlk açılışta Server Manager kısmı açılıyor. Alttaki görseli takip edin 3 ve 4. kısımdaki tikler fotodakiyle aynı olsun.

> Kurulum Aşaması bitti şimdi Ayar kısımlarına geçiyoruz.
> Hetznere geri dönün ve Iso Images kısmından bu sefer Virtio win 248i mounth edin

> Sunucuya geri dönün Windows logosuna sağ tıkla ve Device Manageri seç.

> Açılan ekranda Other Devices bölümünde 3 veya 4 tane Sarı ünlem görüyorsunuz
> Önce Ethernet yazana sağ tık yapın ve update driverse tıklayın.
> Browse my computer... yazanı seç ve fotoğraftaki adımları takip et

> Sağ kısımda Mavi panel açılacak Network başlıklı, Yes butonuna basın.
> Geri kalan 2 veya 3 Adet sarı ünleme aynı işlemleri yapın.
#
> Windows logosuna tıklayın ve arama yerine Remote Desktop Settings yazın.
> Açılan ekrandaki Enable Remote Desktop kısmını aktif edin.

> Kişisel bilgisayarınızda Uzaktan Masaüstü bağlantı programı var onu açın.
> Mac'de Microsoft Remote Desktop - Windows'da Windows Remot isminde olmalı.
> Sunucu bilgilerinizi yazıp bağlanın.

Contabo VPS Windows Kurulumu
Sadece Contabo VPS için geçerlidir
> Bu işlem için contabo Aylık 1.5$ istiyor. Normalde Contaboya Windows kurmak isterseniz 6$ masraf çıkartıyor ama bu yöntemle bunu 1.5$a düşebiliyorsunuz.
> Contabo hesabınıza giriş yapın, Control panelinden Custom Imagese tıklayın. Add Custom image butonuna tıklayın
> Bilgilendirme mesajı gösterirse yes diyip geçin 1. kısımda anlattığım şeyi söylüyor size.
> Karşınıza açılan Panelde verdiğim bilgileri girin.
> Image URL: https://archive.org/download/newIsoForContabo/newIsoForContabo.iso
>
> Image Name: Windows Contabo
>
> Os Type: Windows
>
> Version: 2019
>
> Description: Rues

> Upload butonuna basın ve dolmasını bekleyin. Bu adımda yüklenmesi contabodan kaynaklı olarak 1-2 saat sürebiliyor. Yüklendikten sonra diğer adıma geçin.
# Kurduğumuz İso dosyasını sunucuya mounth etme adımı
> Vps kontrol kısmına gidin, Önce Cloud init kısmını yeşil yapın, sonra Re install butonuna basın.

> Görseldeki adımları sırasıyla yapın.
> Windows Contaboyu seçtikten sonra Install butonuna basın. 5 Dakika sonra bir sonraki adıma geçin.

# Windows kurulumu başlayacak, şimdi VNC ile sunucumuza bağlanmamız gerekiyor.
> Windows pc kullanıyosanız Mobaxterm ile bağlanabilirsiniz.
> New Session oluşturup VNCyi seçin, VNC bağlantı bilgilerinizi bir sonraki adımda nasıl öğrenebileceğinizi göstericem.

# VNC bilgilerinim nerede?
> VPS control kısmında sunucunuzu bulun ve manage butonuna tıklayın VNC Informationda bilgileriniz yazıyor.
> VNC ile bağlanınca mouse sıkıntısı oluyor, bu yüzden mouse kullanmak yerine TAB tuşu ve Enter tuşu ile gerekli işlemleri yapabilirsiniz.

# Windows Kurulumunu tamamlayalım.
> Mavi arkaplanlı kısım gelecek hiç bir ayarı değiştirmeden Nexte bas ardından Install Now butonuna tıklıyoruz.
> Sonrasında 2. sıradaki Desktop Experince yazana tıklıyoruz.

> Sonraki aşamada Custom: Install Windows only yazana tıklayın.
> Bu kısımı lütfen iyi okuyun atlarsanız diskiniz gözükmeyecektir.
> Load Driver butonuna tıklayın
> Browse butonuna tıklayın ve ardından D: disketindeki (177 ile başlayan) > virio-win klasörü > amd64 > 2k19 klasörünü seçin ve Ok butonuna tıklayın.
> Eğer doğru klasörünü seçtiyseniz Red Hat SCSI ... ile başlayan bir text gelecek onu seçip next butonuna bas.

> New butonuna bas, hiç bi ayar değişmeden Apply butonuna bas ve Next yap.

> Sunucumuza off/on yapıyor tekrar bağlanıyoruz. (EĞER SİYAH EKRANDA KALDIYSANIZ BUNU YAPIN NORMALDE OTOMATİK YAPIYOR)
> Akabinde şifre belirleme alanı geliyor burda 8 haneli bir şifre girin büyük harf istiyor

> Windowsun kilit ekranı kısmına geldiğinizde sağ alttaki Ctrl + Alt + Del butonuna tıklayın ve masaüstüne geçiş yapın.

> İlk açılışta Server Manager kısmı açılıyor. Alttaki görseli takip edin 3 ve 4. kısımdaki tikler fotodakiyle aynı olsun.

# Windows Server Ayarlarımızı tamamlayalım.
> Şifreyi ayarlayıp giriş yaptıktan sonra Windows logosuna sağ tıkla ve Device Manageri seç.

> Açılan ekranda Other Devices bölümünde 3 veya 4 tane Sarı ünlem görüyorsunuz
> Önce Ethernet yazana sağ tık yapın ve update driverse tıklayın.
> Browse my computer... yazanı seç ve fotoğraftaki adımları takip et

> Sağ kısımda Mavi panel açılacak Network başlıklı, Yes butonuna basın.
> Geri kalan 2 veya 3 Adet sarı ünleme aynı işlemleri yapın.
#
> Windows logosuna tıklayın ve arama yerine Remote Desktop Settings yazın.
> Açılan ekrandaki Enable Remote Desktop kısmını aktif edin.

> Kişisel bilgisayarınızda Uzaktan Masaüstü bağlantı programı var onu açın.
> Mac'de Microsoft Remote Desktop - Windows'da Windows Remot isminde olmalı.
> Sunucu bilgilerinizi yazıp bağlanın.
> Kullanıcı Adı: Administrator
> Şifre: Windows kururken girdiğiniz şifre

# Windows kurulumu bitti, Şimdi Rivalz Nodeu kurmaya devam edebilirsiniz.
Ubuntu VPS Sunucu Kurulumu
Sadece Ubuntu için geçerlidir
> Sunucuya bağlandığınızı farz ederek devam ediyorum.
> Sunucu güncelleme, libfuse2 ve gereklilikleri yüklüyoruz.
```
sudo apt update -y && sudo apt upgrade -y
```
```
sudo apt-get install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev libnss3-dev libfuse2
```

> ekran açalım.
```
screen -S rivalz
```
> rivalz clienti indirelim.
```
wget https://api.rivalz.ai/fragmentz/clients/rClient-latest.AppImage
```

> indirdiğimiz dosyayı executable yapalım.
```
chmod +x rClient-latest.AppImage
```

> dosyayı açalım.
```
./rClient-latest.AppImage --no-sandbox
```

> bir sorun çıkmaz ise karşınıza bu ekran gelecek.
>
> bundan sonra storage belirleyip, wallet girerek yapabilirsiniz. tebrikler! linuxda rclient açabiliyorsunuz artık.

# Rivalz Node Kurulumu
> Rivalz hesap açıyoruz [buradan](https://rivalz.ai?r=Ruesandora0)
> Burada cüzdan, x (formerly twitter) ve discord her şey bağlayın.
#
> Remote ile bağlandığımız ekrana geri dönüyoruz.
> Microsoft Edge'i indiriyoruz Remota'a (suncuya)
> rivalz.ai sitesine girip dowland windows diyoruz
> Kurulumu yapıyoruz
#
> Kurulum tamamlandıktan sonra, önce metmaask cüzdan adresimizi giriyoruz
> Storage Control'den free space neye müsade ediyorsa o rakamı giriyoruz
> 3-4 GB daha düşük yazın
> Sonra başlatıyoruz node'u ve hayırlı olsun.
> rClient uygulamasında sol üstte view sekmesi var oradan reload'a basıp, node'u tekrar çalıştırın
#
> Akabinde rivalz'da LOYALTY NFTs kısmını yapmayı unutmayın mintlein 10 NFT'yi.
> Rivalz hakkında link paylaşmak isterseniz [burayı](https://t.me/ruesshare/21528) kullanabilirsiniz.
================================================
FILE: UbuntuKurulumu.md
================================================
# Ubuntu Desktop Rivalz Kurulumu
> Repo'yu RC için katkıda bulunan [Mehmet](https://github.com/mehmet0150)'e teşekkürler <3
#
> Aşağıdaki komutlar ile Ubuntu sunucunuza desktop özelliği kazandırabilir.
> Ardından windows RDP veya başka bir uzaktan bağlantı programıyla Rivalz, Chrome, Nodepay, Oasis ve Network3 kurulumlarını yapabilirsiniz.
> Birkaç gündür deneyimliyorum. Rivalz için 200 puana ulaşamadım. Ancak ortalama 100 puan civarında getirisi oluyor.
> Diğer saydıklarım ise şimdilik windows sunucusunda olduğu gibi çalışıyor.
> Tüm sunucularımızın etinden kemiğinden faydalanmak için Rivalz, Nodepay, OasisAI, Network3 kurabilirsiniz. [Burada](https://github.com/ruesandora/Rivalz/blob/main/Yanc%C4%B1klar.md) mevcut.
#
> Öncelikle root klasöründe yeni bir klasör oluşturalım:
```ruby
mkdir ubuntu-rivalz
```
> Klasöre girelim ve aşağıdaki komutu çalıştıralım.
```ruby
cd ubuntu-rivalz
nano setup_rivalz.sh
```
Açılan dosyaya aşağıdaki kod bloğunun en üstünde değişiklik yaparak yapıştıralım. Yeni bir kullanıcı adı ve şifre oluşturacağız. Komutların üzerinde ne işe yaradığı yazıyor. Şifre ve kullanıcı adı için şu karakterleri kullanmayın: ; | & $ ` \ ' “ < > ( ) * ? [ ] { } # ~ % !
```ruby
#!/bin/bash
# Uzak masaüstü için kullanıcı ve şifre değişkenlerini tanımlayın
# Root kullanmayın
USER="KULLANICI ADI"
PASSWORD="ŞİFRE"
# Paket listesini günceller
apt update && apt upgrade -y
# GNOME Masaüstünü yükler
sudo apt install -y ubuntu-desktop
# Uzak masaüstü sunucusunu (xrdp) kurar
sudo apt install -y xrdp
# USER kullanıcısını şifreyle ekler
sudo useradd -m -s /bin/bash $USER
echo "$USER:$PASSWORD" | sudo chpasswd
# USER kullanıcısını yönetim hakları için sudo grubuna ekler
sudo usermod -aG sudo $USER
# xrdp'yi GNOME masaüstünü kullanacak şekilde yapılandırır
echo "gnome-session" > ~/.xsession
# xrdp hizmetini yeniden başlatır
sudo systemctl restart xrdp
# Başlangıçta xrdp'yi etkinleştirir
sudo systemctl enable xrdp
# Rivalz.ai rClient için gereklilikleri kurar
sudo apt install -y wget
# Rivalz.ai rClient AppImage'ı indirir
wget https://api.rivalz.ai/fragmentz/clients/rClient-latest.AppImage -O rClient-latest.AppImage
# AppImage'ı çalıştırılabilir hale getirir
chmod +x rClient-latest.AppImage
# Eğer mevcut değilse Belgeler dizinini oluşturur
sudo -u $USER mkdir -p /home/$USER/Documents
# AppImage'ı kullanıcının Belgeler dizinine taşır
sudo mv rClient-latest.AppImage /home/$USER/Documents/rClient-latest.AppImage
# rClient'in sahibini belirtilen kullanıcıyla değiştirir
sudo chown $USER:$USER /home/$USER/Documents/rClient-latest.AppImage
echo "Kurulum tamamlandi. GNOME Desktop, xrdp ve Rivalz.ai rClient kuruldu. Lutfen VPSFix.sh dosyasini calistiriniz."
```
``` CTRL + X ``` tuşlarına ve ```Y ``` tuşuna basalım, ardından ```ENTER``` tuşuna basalım.
Dosyayı kullanılabilir hale getirelim.
```ruby
chmod +x setup_rivalz.sh
```
Şimdi scripti çalıştıralım.
```ruby
./setup_rivalz.sh
```
Tüm kurulumlar yapıldıktan sonra ubuntuda kurulan rclient'lerin dashboard'da görünmesini engelleyen hatayı düzeltelim. ```setup-rivalz``` klasöründen devam ediyoruz.
```ruby
nano VPSFix.sh
```
Aşağıdaki scripti olduğu gibi yapıştıralım.
```ruby
#!/bin/bash
# Version 1.1
# Hizmet dosyası yolunu tanımlar
SERVICE_FILE="/etc/systemd/system/default-interface-config.service"
# Komut dosyasının root ayrıcalıklarıyla çalıştırılıp çalıştırılmadığını kontrol eder
if [ "$EUID" -ne 0 ]; then
echo "Lutfen root olarak çaliştirin."
exit 1
fi
# Zaten yüklü değilse ethtool'u yükler
if ! command -v ethtool &> /dev/null; then
echo "ethtool bulunamadi, yukleniyor..."
apt-get update
apt-get install -y ethtool
fi
# Varsayılan ağ arayüzünü alır
DEFAULT_INTERFACE=$(ip route show default | awk '/default/ {print $5}')
# systemd hizmet dosyasını oluşturur
cat < $SERVICE_FILE
[Unit]
Description=Configure default network interface
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s $DEFAULT_INTERFACE speed 1000 duplex full autoneg off
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOL
# Yeni hizmeti tanımak için systemd'yi yeniden yükler
systemctl daemon-reload
# Hizmetin önyüklemede başlatılmasını sağlar
systemctl enable default-interface-config.service
# Starts the service immediately
systemctl start default-interface-config.service
echo "Varsayilan arayuz yapilandirmasi hizmeti $DEFAULT_INTERFACE arayuzune yuklendi ve baslatildi."
```
``` CTRL + X ``` tuşlarına ve ```Y ``` tuşuna basalım, ardından ```ENTER``` tuşuna basalım.
Dosyayı kullanılabilir hale getirelim.
```ruby
chmod +x VPSFix.sh
```
Şimdi scripti çalıştıralım.
```ruby
./VPSFix.sh
```
Kurulum bu kadar. Şimdi Windows uzak Masaüstü programı ile sunucumuca bağlanalım. Sunucumuzun IP adresini giriyoruz.

Script içine yazdığımız kullanıcı adı ve şifresini giriyoruz.

Herşey doğru bir şekilde tamamlandıysa bizi ubuntu masaüstü karşılayacak. Sol üstte ```Activities``` sekmesine basıyoruz. Eğer rıvalz dışında chrome üzerinden eklenti kuracaksanız (nodepay vb.) ```Firefox``` ile chrome indirip eklentileri yükleyebilirsiniz. Rivalz için okla gösterilen yere basıyoruz ve açılan ekranda ```Documents``` klasöründe rclient bizi bekliyoruz. Çift tıklayarak çalıştırabilirsiniz.

**```NOT 1:``` Sunucunuzun özelliklerine göre masaüstündeki tıklamalar biraz geç algılanabilir, lütfen sabırlı olun.**
**```NOT 2:``` Masaüstünde yaptığınız tüm işlemler sunucunun tamamında etkili olabileceği ve içerisinde çalışan diğer nodelara etki edebileceği için lütfen sadece gerekli işlemleri yapın.**
**```NOT 3:``` Kurulumla ilgili tüm sorumluluk kuran kişiye aittir. Oluşabilecek herhangi bir hatadan veya kayıptan kuran kişi tamamen kendisi sorumludur.**
**```NOT 4:``` Kurulumdan sonra uzak masaüstüne bağlanırken sorun yaşayanlar aşağıdaki kodu deneyebilirler.(Login failed ve siyah ekranda kalma problemleri)**
```ruby
sysctl -a | grep disable_ipv6
```
Yukarıdaki kodun çıktısında **net.ipv6.conf.lo.disable_ipv6** değeri **1** olarak dönüyorsa aşağıdaki kodu çalıştırın.
```ruby
sysctl -w net.ipv6.conf.lo.disable_ipv6=0
```
Şimdi bağlanmayı tekrar deneyebilirsiniz.
================================================
FILE: Yancıklar.md
================================================
> İster sunucularınızda ister cihazlarınızda çalıştıracağınız extension-nodelar
#
* aktifler
> [Distribute](https://r.distribute.ai/rues): Eski oasis yenilendi (2m$ küsür seed fundingi var.)
> [Gaea](https://app.aigaea.net/register?ref=ganhrBl3zp9cWN) - misson kısmından baslangıcta iyi ödül geliyor.
> [Minion Lab](https://app.minionlab.ai/?referralCode=BKmubgib): Yakında 2.2m$ seed tamamladı, ton cüzdanınızı bağlamayı unutmayın.
> Aşinasınızdır projeye: [LayerEdge](https://dashboard.layeredge.io/) , koda ihtiyacınız varsa: `2TERmpmU`
> [Dawn](https://chromewebstore.google.com/detail/dawn-validator-chrome-ext/fpdkjdnhkakefebpekbdhillbhonfjjp): belkide en önemlisi olabilir: - koda ihtiyacınız varsa: `b7t69p`
> [Gradient](https://app.gradient.network/signup?code=XBC1WY), belki unutuldu ama ben çalıştırıyorum
> Teneo [buradan](https://chromewebstore.google.com/detail/teneo-community-node/emcclcoaglgcpoognfiggmhnhgabppkm) extension - koda ihtiyacınız varsa: `rYZur` - [kayıt linki](https://dashboard.teneo.pro/dashboard)
#
* belirsizler
> Vana ağında [YKYR](https://chromewebstore.google.com/detail/ykyr/gfogbpcdlcihfaejpmdhigejhpckdamh) çok bir bilgi yok.
> [BlockMesh](https://app.blockmesh.xyz/register?invite_code=3e203584-b216-45f0-9005-eff31376a657) - fikrim yok pek ilgilenmiyorum ama paylaşayım.
#
* bitenler
> [Nodepay](https://app.nodepay.ai/register?ref=pvAqqadUHkSZcrP) (Bitti, tatlı bir droptu)
> [Network3](https://account.network3.ai/register_page?rc=6ef6d1a8) (Bitti, kötü bir droptu)
#
> Tüm yancıkların ref linkini paylaşabileceğiniz yer için [burayı](https://t.me/+sTSzRlNWIpNiNjE0) kullanabilirsiniz.
> Dahası gelecek [telegramda](https://t.me/RuesAnnouncement) duyururum, bugların düzelmesini bekliyorum.
================================================
FILE: auto refresher.html
================================================
Auto Refresh Iframe
> Rivalz sunucumuza girip, Edge'yi açıyoruz.
> Arama yerine aşağıdaki linkleri yapıştırıyoruz.
>

> Nodepay :
```
extension://lgmpfmgeabnnlemejacfljbmonaomfmm/index.html
```
> Oasis :
```
extension://knhbjeinoabfecakfppapfgdhcpnekmm/index.html
```
> Ardından açılan sayfada F12'ye basıyoruz.
> Open DevTools diyerek konsolu açıyoruz.
>

> Konsol kısmına yapıştırma izni vermek için aşağıdaki kodu yapıştırıyoruz ve Enter'a basıyoruz.
```
allow pasting
```
> Bu kodu yapıştırıyoruz ve Enter'a basıyoruz.
> > Not : Kodun yenileme süresi default olarak 5 dakika. `setInterval(updateIframe, 300000);` bu kısmı ms cinsinden düzenleyebilirsiniz.
```
// Mevcut body içeriğini iframe ile değiştirir ve her 5 dakikada bir yeniler
function updateIframe() {
// Eski iframe'i kaldırır
const oldIframe = document.getElementById("testFrame");
if (oldIframe) {
oldIframe.remove();
}
// Yeni iframe oluşturur ve ekler
document.getElementsByTagName("body")[0].innerHTML = `
`;
}
// 5 dakikada bir (300000 milisaniye) updateIframe fonksiyonunu çalıştırır
setInterval(updateIframe, 300000);
// İlk çalıştırma
updateIframe();
```
#
>Yukarıdaki işlemleri aynı şekilde chrome'da yapabilirsiniz.
> Nodepay :
```
chrome-extension://lgmpfmgeabnnlemejacfljbmonaomfmm/index.html
```
> Oasis :
```
chrome-extension://knhbjeinoabfecakfppapfgdhcpnekmm/index.html
```
`This page has been blocked by an extension` şeklinde uyarı geliyorsa, uzantıyı kapatıp açın.
#
>İşlemler bu kadardı. Sonrasında sayfayı o şekilde bırakıp bağlantıyı koparıyoruz.
================================================
FILE: oasis.sh
================================================
#!/bin/bash
apt update && apt upgrade -y
sudo apt install nodejs npm -y
npm install axios readline-sync figlet ws
mkdir oasis
cd oasis
wget https://raw.githubusercontent.com/ruesandora/Rivalz/main/update_token.js
wget https://raw.githubusercontent.com/ruesandora/Rivalz/main/oasis_terminal.js
echo "Kurulum tamamlandı, Repoya geri dönün ve sonraki adıma geçin"
================================================
FILE: oasis_terminal.js
================================================
const WebSocket = require('ws');
const os = require('os');
const { execSync } = require('child_process');
const path = require('path');
const fs = require('fs');
const figlet = require('figlet');
// Simple color function
const color = {
reset: "\x1b[0m",
bright: "\x1b[1m",
dim: "\x1b[2m",
underscore: "\x1b[4m",
blink: "\x1b[5m",
reverse: "\x1b[7m",
hidden: "\x1b[8m",
fg: {
black: "\x1b[30m",
red: "\x1b[31m",
green: "\x1b[32m",
yellow: "\x1b[33m",
blue: "\x1b[34m",
magenta: "\x1b[35m",
cyan: "\x1b[36m",
white: "\x1b[37m",
},
bg: {
black: "\x1b[40m",
red: "\x1b[41m",
green: "\x1b[42m",
yellow: "\x1b[43m",
blue: "\x1b[44m",
magenta: "\x1b[45m",
cyan: "\x1b[46m",
white: "\x1b[47m",
}
};
// Import the database module
const { database, updateDatabase, initDatabase } = require('./database');
function formatMetrics(data) {
const { creditsEarned, totalUptime, networkPerformance } = data;
const days = Math.floor(totalUptime / 86400);
const hours = Math.floor((totalUptime % 86400) / 3600);
const minutes = Math.floor((totalUptime % 3600) / 60);
let uptimeString = '';
if (days > 0) uptimeString += `${days}d `;
if (hours > 0 || days > 0) uptimeString += `${hours}h `;
uptimeString += `${minutes}m`;
const networkPercentileFormatted = (networkPerformance * 100).toFixed(0);
return `Credits Earned: ${creditsEarned} | Provider Uptime: ${uptimeString} | Network Percentile: ${networkPercentileFormatted}%`;
}
function main() {
// Clear the console
console.clear();
// Use figlet to generate the ASCII art
const asciiArt = figlet.textSync('Oasis Terminal', {
font: 'Standard',
horizontalLayout: 'default',
verticalLayout: 'default'
});
console.log(`${color.fg.blue}${color.bright}${asciiArt}${color.reset}`);
console.log(`${color.fg.green}${color.bright}📡 Monitoring Oasis.ai${color.reset}`);
console.log(`${color.fg.cyan}👨💻 Created by: @dwtexe${color.reset}`);
console.log(`${color.fg.magenta}🔍 Starting Oasis Terminal script...${color.reset}`);
console.log();
// Initialize the database
initDatabase();
console.log(`${color.fg.yellow}Database initialized.${color.reset}`);
// WebSocket connection
let socket;
let heartbeatInterval;
let settingsInterval;
const connectWebSocket = () => {
console.log(`${color.fg.cyan}Attempting to connect websocket...${color.reset}`);
if (database.token) {
if (socket && socket.readyState === WebSocket.OPEN) {
console.log(`${color.fg.green}WebSocket already connected.${color.reset}`);
return;
}
socket = new WebSocket(`wss://api.oasis.ai/websocket?token=${database.token}`);
socket.on('open', () => {
console.log(`${color.fg.green}${color.bright}WebSocket connection established.${color.reset}`);
updateDatabase({ stats: { status: 'active' } });
startHeartbeatInterval();
startSettingsInterval();
});
socket.on('close', (code) => {
console.log(`${color.fg.red}WebSocket closed with code ${code}.${color.reset}`);
clearHeartbeatInterval();
clearSettingsInterval();
if (code === 1000) {
console.log(`${color.fg.yellow}Normal closure, updating database...${color.reset}`);
updateDatabase({
stats: { status: 'offline' },
token: false,
});
return;
}
console.log(`${color.fg.yellow}Unexpected closure, updating status and attempting reconnection...${color.reset}`);
updateDatabase({ stats: { status: 'offline' } });
setTimeout(connectWebSocket, 2500);
});
socket.on('message', (data) => {
const message = JSON.parse(data);
console.log(`${color.fg.blue}${color.bright}Received WebSocket message:${color.reset} ${color.fg.yellow}==>${color.reset} ${color.fg.green}Type: ${message.type}${color.reset}`);
if (message.type === 'serverMetrics') {
const formattedMetrics = formatMetrics(message.data);
console.log(`${color.fg.cyan}${formattedMetrics}${color.reset}`);
console.log(`${color.fg.magenta}Updating database with server metrics...${color.reset}`);
updateDatabase({ stats: { ...message.data } });
} else {
console.log(`${color.fg.green}Data: ${JSON.stringify(message.data, null, 2)}${color.reset}`);
}
console.log(`${color.fg.cyan}${'─'.repeat(70)}${color.reset}`);
});
} else {
console.log(`${color.fg.red}${color.bright}No token available. Cannot connect to WebSocket.${color.reset}`);
}
};
const sendMessage = (message) => {
if (!socket || socket.readyState !== WebSocket.OPEN) {
console.log(`${color.fg.red}Cannot send message. WebSocket is not open.${color.reset}`);
updateDatabase({ stats: { status: 'offline' } });
return;
}
try {
console.log(`${color.fg.blue}Sending message of type: ${message.type}${color.reset}`);
socket.send(JSON.stringify(message));
} catch (error) {
console.error(`${color.fg.red}${color.bright}Error sending message:${color.reset}`, error);
}
};
const startHeartbeatInterval = () => {
console.log(`${color.fg.yellow}Starting heartbeat interval...${color.reset}`);
heartbeatInterval = setInterval(() => {
console.log(`${color.fg.cyan}Sending heartbeat...${color.reset}`);
sendMessage({
type: 'heartbeat',
data: { status: database.stats.status },
});
// Send settings data after heartbeat
sendSettingsData();
}, 60000);
};
const clearHeartbeatInterval = () => {
if (heartbeatInterval !== undefined) {
console.log(`${color.fg.yellow}Clearing heartbeat interval.${color.reset}`);
clearInterval(heartbeatInterval);
heartbeatInterval = undefined;
}
};
const startSettingsInterval = () => {
console.log(`${color.fg.yellow}Starting settings interval...${color.reset}`);
console.log(`${color.fg.cyan}${'─'.repeat(70)}${color.reset}`);
settingsInterval = setInterval(() => {
sendSettingsData();
}, 120000);
};
const clearSettingsInterval = () => {
if (settingsInterval !== undefined) {
console.log(`${color.fg.yellow}Clearing settings interval.${color.reset}`);
clearInterval(settingsInterval);
settingsInterval = undefined;
}
};
const getCPUInfo = () => {
const cpus = os.cpus();
return {
archName: os.arch(),
features: cpus[0].model.split(' '),
modelName: cpus[0].model,
numOfProcessors: cpus.length,
processors: cpus.map(cpu => ({
usage: {
idle: cpu.times.idle * 1000000,
kernel: cpu.times.sys * 1000000,
total: Object.values(cpu.times).reduce((a, b) => a + b, 0) * 1000000,
user: cpu.times.user * 1000000
}
})),
temperatures: []
};
};
const getMemoryInfo = () => {
return {
availableCapacity: os.freemem(),
capacity: os.totalmem()
};
};
const getGPUInfo = () => {
try {
const gpuInfo = execSync('lspci | grep -i vga').toString();
const match = gpuInfo.match(/:\s(.+)/);
return {
vendor: "Unknown",
renderer: match ? match[1].trim() : "Unknown"
};
} catch (error) {
console.error(`${color.fg.red}Error getting GPU info:${color.reset}`, error);
return {
vendor: "Unknown",
renderer: "Unknown"
};
}
};
const sendSettingsData = () => {
console.log(`${color.fg.cyan}Sending settings data...${color.reset}`);
const cpuInfo = getCPUInfo();
const memoryInfo = getMemoryInfo();
const gpuInfo = getGPUInfo();
const settingsData = {
type: "settings",
data: {
mostRecentModel: "todo",
userSettings: {
schedule: {
...database.schedule,
days: Array.from(database.schedule.days)
},
enabledModels: database.models.filter(model => model.status === 'available').map(model => model.name)
},
systemInfo: {
cpuInfo,
memoryInfo,
gpuInfo
},
extensionVersion: "0.1.0",
chromeVersion: "119"
}
};
sendMessage(settingsData);
console.log(`${color.fg.cyan}${'─'.repeat(70)}${color.reset}`);
};
console.log(`${color.fg.magenta}${color.bright}Main function started.${color.reset}`);
console.log(`${color.fg.cyan}${'─'.repeat(70)}${color.reset}`);
connectWebSocket();
console.log(`${color.fg.cyan}${'─'.repeat(70)}${color.reset}`);
}
console.log(`${color.fg.green}${color.bright}Script setup complete. Starting main function...${color.reset}`);
main();
================================================
FILE: rivalz-cli.md
================================================
# Rivalz Testnet CLI
Bu kılavuz, Rivalz istemcisini indirmek ve çalıştırmak için talimatlar ve komutlar sağlar.
## Gereklilikler
```
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
source ~/.bashrc
nvm install 20.0.0
nvm use 20.0.0
```
## Yüklemeler
Öncelikle kurulum yapacağımız sunucuda screen açıyoruz
```
screen -S rivalz
```
CLI yüklemek için komutu çalıştıralım
```bash
npm i -g rivalz-node-cli
```
Rivalz'i çalıştırmak için komutu kullanalım ve EVM adresimizi ne kadar cpu ve ram kullanmak istediğimizi yazalım ve ayrıca depolama olarak ne kadar paylaşmak istediğimizi de girelim. Depolamada max gösterdiği total depolama olduğu için ne kadar boş yerimiz olduğunu göz önünde bulundurup yazalım.
```
rivalz run
```
Kurulum başarılı olduysa aşağıdaki gibi bir ekran göreceksiniz

CTRL + A + D ile screenden çıkabilirsiniz
**Rivalz Dashboarddan client'i validate etmeyi unutmayın**
Bol puan kasmalar
================================================
FILE: snapshot-alma.md
================================================
# Başlamadan önce
> Windows Kurulu bir Serverınız olmalı, Ana repodan kurulumu yapın. Minimum Cpx11 sunucusunu seçin.
### Serverlarınıza girin ve Windowsun kurulu olduğu sunucunun sağındaki 3 noktaya basın ardından Take snapshot butonuna basın

> Bu kısımda size fiyattan bahsediyor, yaklasık 10 GBlik bir snapshot olusturmus oluyoruz bunun maliyeti 0.11€/Aylık.
> Create Buy now butonuna basıp onaylıyoruz, Snapshotun alınması 5 dakika sürüyor.
### Servers kısmına dönün, Snapshots kısmına tıklayın ve ardından Snapshotun sağındaki 3 noktaya basın. Bu sefer Create new Server olanı seçin.

> Sonrasında sizden sunucu özelliklerini belirlemenizi istiyor, Başlangıç seviyesi için CPX11i seçebilirsiniz size kalmış.
>
### Sunucu oluşturuldu, Uzakt Masaüstü Bağlantısı programı ile sunucunuza erişebilirsiniz
> Kullanıcı Adı: Administrator
> Şifre: Klonladığınız sunucunun windows şifresini girin. İşlem bu kadardı

================================================
FILE: ubunturc.md
================================================
Rivalz Client Linux CLI / Ubuntu
> selams, ubuntu / linux CLI üzerinde nasıl RClient açabileceğinizi göstereceğim. Ben PoyrazHosting kullanıyorum, diğer hostlarda denemedim. Deneyen arkadaşlar PR atabilirler.
>
> ihtiyacınız olan şeyler, bir ubuntu 22.04 sunucusu (20.04 çalışır belki? denemedim.) ve MobaXTerm programı.
>
> hadi başlayalım.
#
Ubuntu Sunucu Kurulumu
Sadece Ubuntu için geçerlidir
> Sunucuya bağlandığınızı farz ederek devam ediyorum.
> Sunucu güncelleme, libfuse2 ve gereklilikleri yüklüyoruz.
```
sudo apt update -y && sudo apt upgrade -y
```
```
sudo apt-get install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev libnss3-dev libfuse2
```

> ekran açalım.
```
screen -S rivalz
```
> rivalz clienti indirelim.
```
wget https://api.rivalz.ai/fragmentz/clients/rClient-latest.AppImage
```

> indirdiğimiz dosyayı executable yapalım.
```
sudo chmod +x rClient-latest.AppImage
```

> dosyayı açalım.
```
./rClient-latest.AppImage --no-sandbox
```

> bir sorun çıkmaz ise karşınıza bu ekran gelecek.
>
> bundan sonra storage belirleyip, wallet girerek yapabilirsiniz. tebrikler! linuxda rclient açabiliyorsunuz artık.

================================================
FILE: update_token.js
================================================
const fs = require('fs').promises;
const path = require('path');
const axios = require('axios');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function question(query) {
return new Promise((resolve) => {
rl.question(query, resolve);
});
}
const userAgents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.54',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
];
function getRandomUserAgent() {
return userAgents[Math.floor(Math.random() * userAgents.length)];
}
async function login(email, password) {
const response = await axios.post('https://api.oasis.ai/internal/authLogin?batch=1', {
"0": { "json": { email, password } }
}, {
headers: {
'Content-Type': 'application/json',
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.9,tr;q=0.8',
'Origin': 'https://dashboard.oasis.ai',
'Referer': 'https://dashboard.oasis.ai/',
'User-Agent': getRandomUserAgent()
}
});
return response.data[0].result.data.json;
}
async function getExtensionToken(authToken, clientName) {
const response = await axios.post('https://api.oasis.ai/internal/authConnect?batch=1', {
"0": { "json": clientName }
}, {
headers: {
'Content-Type': 'application/json',
'Authorization': authToken,
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.9,tr;q=0.8',
'Origin': 'https://dashboard.oasis.ai',
'Referer': 'https://dashboard.oasis.ai/',
'User-Agent': getRandomUserAgent()
}
});
return response.data[0].result.data.json;
}
async function createDatabaseFile(token) {
const databaseContent = `const fs = require('fs').promises;
const path = require('path');
let database = {
version: 1,
token: "${token}",
stats: {
creditsEarned: 0,
networkPerformance: 0,
solvedTasks: 0,
status: "active",
totalEarnings: 0,
totalUptime: 0
},
models: [],
schedule: {
days: new Set(["monday", "tuesday", "wednesday", "thursday", "friday"]),
mode: "all",
startTime: "10:00",
stopTime: "16:00",
usage: "maximum"
},
system: {
gpuInfo: undefined
}
};
const updateDatabase = async (updatedData) => {
const updatedDatabase = Object.assign({}, database);
if ('token' in updatedData) {
updatedDatabase.token = updatedData.token;
}
if ('models' in updatedData) {
updatedDatabase.models = updatedData.models;
}
if ('stats' in updatedData) {
updatedDatabase.stats = {
...database.stats,
...updatedData.stats,
};
}
if ('schedule' in updatedData) {
updatedDatabase.schedule = {
...database.schedule,
...updatedData.schedule,
};
}
if ('system' in updatedData) {
updatedDatabase.system = {
...database.system,
...updatedData.system,
};
}
await fs.writeFile(path.join(__dirname, 'database.json'), JSON.stringify(updatedDatabase, null, 2));
database = updatedDatabase;
};
const initDatabase = async () => {
try {
const data = await fs.readFile(path.join(__dirname, 'database.json'), 'utf8');
database = JSON.parse(data);
} catch (error) {
await fs.writeFile(path.join(__dirname, 'database.json'), JSON.stringify(database, null, 2));
}
};
module.exports = {
database,
updateDatabase,
initDatabase,
};`;
const dbPath = path.join(__dirname, 'database.js');
await fs.writeFile(dbPath, databaseContent, 'utf8');
console.log('database.js created and updated with new token');
}
async function main() {
try {
const email = await question('Enter your email: ');
const password = await question('Enter your password: ');
console.log('Logging in...');
const authToken = await login(email, password);
console.log('Auth token:', authToken);
const clientName = await question('Enter client name: ');
console.log('Getting extension token...');
const extensionToken = await getExtensionToken(authToken, clientName);
console.log('Extension token:', extensionToken);
console.log('Creating database.js...');
await createDatabaseFile(extensionToken);
console.log('database.js created with new token');
} catch (error) {
console.error('Error:', error.message);
} finally {
rl.close();
}
}
main();
================================================
FILE: znode.md
================================================
# Rivalz ZNODE Kurulumu
## Gereklilikler
Node.js ve npm kurulumu. Yüklü değilse kurulum yapın.
```
curl -sL https://deb.nodesource.com/setup_20.x -o /tmp/nodesource_setup.sh
sudo bash /tmp/nodesource_setup.sh
sudo apt install nodejs
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install v20.10.0
nvm use v20.10.0
npm install -g npm@latest
```
## Yüklemeler
Öncelikle kurulum yapacağımız sunucuda screen açıyoruz
```
screen -S rivalz
```
CLI yüklemek için komutu çalıştıralım
```bash
npm i -g rivalz-znode-cli
```
## Delegate Node
Alttaki kodu çalıştırın.
```
znode run
```
size bir node id verecek. [ZNODE](https://znode.rivalz.ai/znode) sayfasına gidin. Cüzdan bağlantılarını yaptıktan sonra kaç tane node aldıysanız her birisi için ayrı NFT burada gözükecek. Adığınız NODE ID yi ilgili kısıma yazdıktan sonra Token Amount'a kaç znode çalıştıracağınızı yazıyorsunuz. Delegate diyip cüzdandan onay verin. Başarılı olduktan sonra terminale dönüp tekrar aşağıdaki kodu çalıştır.
```
znode run
```
CTRL + A D ile screenden çıkabilirsiniz.