# Airchains CosmWasm Zk Rollup Node

By [Huge|NodeRunner](https://paragraph.com/@0xhuge) · 2024-06-26

---

Airchains เป็นแพลตฟอร์มโครงสร้าง zk-Rollup แบบโมดูลาร์ที่ออกแบบมาโดยเฉพาะเพื่อช่วยให้นักพัฒนาสร้างแอปพลิเคชันที่ครอบคลุมได้ด้วยความเร็วและความเป็นส่วนตัวที่ไม่มีใครเทียบได้ อีกทั้งยังมีความยืดหยุ่นในการเลือกเลเยอร์การประมวลผลและการจัดเก็บข้อมูล ที่เหลือไปไปอ่านต่อกันเองนะครับ

**Configuration requirements**
------------------------------

System: Ubuntu 22.04

![ส่วนตัวผมใช้ 8GB 8 CORE 300GB](https://storage.googleapis.com/papyrus_images/b945d8df44270b61c89692e99c5fdb5b88eafab51b7884ce211e04e0e3834cac.png)

ส่วนตัวผมใช้ 8GB 8 CORE 300GB

**Install เพื่อเตรียมเครื่อง**
------------------------------

    sudo apt-get update && apt-get install jq build-essential -y
    sudo apt install curl -y
    

**Install go**
--------------

    curl https://dl.google.com/go/go1.22.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf - ;
    cat <<'EOF' >>$HOME/.bashrc
    export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export GO111MODULE=on
    export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
    EOF
    source $HOME/.bashrc
    

**Download the GitHub repository**
----------------------------------

    cd
    git clone https://github.com/airchains-network/wasm-station.git
    git clone https://github.com/airchains-network/tracks.git
    

**Setting up Wasm Station**
---------------------------

    cd wasm-station
    go mod tidy
    

    /bin/bash ./scripts/local-setup.sh
    

ถึงตรงนี้บางคนอาจจะรอนานหน่อยก็รอไปครับ  
ถ้าถูกต้องมันจะขึ้นประมาณนี้

![ขึ้นแบบนี้คุณได้ไปต่อ](https://storage.googleapis.com/papyrus_images/37471c77958a583158c2a11aba263d37e4f798fff5017c935b307e3f260c8ef5.png)

ขึ้นแบบนี้คุณได้ไปต่อ

### **Run wasmstation**

    sudo tee <<EOF >/dev/null /etc/systemd/system/wasmstationd.service
    [Unit]
    Description=wasmstationd
    After=network.target
    [Service]
    User=$USER
    ExecStart=$HOME/wasm-station/build/wasmstationd start --api.enable
    Restart=always
    RestartSec=3
    LimitNOFILE=10000
    [Install]
    WantedBy=multi-user.target
    EOF
    
    sudo systemctl daemon-reload && \
    sudo systemctl enable wasmstationd && \
    sudo systemctl start wasmstationd
    

รอประมาณ 2 3 นาทีจับเวลาเอานะ

View logs

    sudo journalctl -u wasmstationd -f
    

**Setting up DA**
-----------------

### **Download eigenlayer-cli**

    cd
    wget https://github.com/airchains-network/tracks/releases/download/v0.0.2/eigenlayer
    sudo chmod +x eigenlayer
    sudo mv eigenlayer /usr/local/bin/eigenlayer
    

### **Create key**

    eigenlayer operator keys create  -i=true --key-type ecdsa (ใส่ชื่อ wallet) 
    

**ทำตามขั้นตอนที่หน้า command Save the private key เอาออกมาเก็บไว้ แล้วกด q เพื่อออก**

![copy ทุกอย่างออกมาเก็บไว้](https://storage.googleapis.com/papyrus_images/7ddb193922fa0bc1410f180989e2a5eb8f599114d5ee3dabf1a317f901f212ff.png)

copy ทุกอย่างออกมาเก็บไว้

**Setting Tracks**
------------------

    sudo rm -rf ~/.tracks
    

    cd $HOME/tracks
    go mod tidy
    

    go run cmd/main.go init --daRpc "disperser-holesky.eigenda.xyz" --daKey "เอา key ข้างบนมาใส่ตรงนี้" --daType "eigen" --moniker "ใส่ชื่อของเรา" --stationRpc "http://127.0.0.1:26657" --stationAPI "http://127.0.0.1:1317" --stationType "wasm"
    

ถ้าถูกต้องจะขึ้นแบบนี้

    [2024-06-26 09:50:08] » Track initialization successful
    

### **สร้าง airchains address**

    go run cmd/main.go keys junction --accountName airchainsตามด้วยชื่อเรา --accountPath $HOME/.tracks/junction-accounts/keys
    

จำไว้เสมอว่าเมื่อระบบสร้างอะไรให้เรามาให้เรา save เก็บเอาไว้ทั้งหมดเพราะมันจะถูกนำมาใช้ตอนหลัง ค่อยๆดูนะครับมันจะมี key ต่างๆมาให้เรา

ไปขอเหรียน
----------

[https://airchains.faucetme.pro/?source=post\_page-----4cb8b890807b--------------------------------](https://airchains.faucetme.pro/?source=post_page-----4cb8b890807b--------------------------------)

![ใส่เลขกระเป๋าเราที่ขึ้นต้นด้วย AIR ](https://storage.googleapis.com/papyrus_images/aaaf8e468b0db6818e15c6d84be2453e88ba130709f79d053a92fe6d6829728b.png)

ใส่เลขกระเป๋าเราที่ขึ้นต้นด้วย AIR

### **Initialize prover**

    go run cmd/main.go prover v1WASM
    

    nodeid=$(grep "node_id" ~/.tracks/config/sequencer.toml | awk -F '"' '{print $2}')
    ip=$(curl -s4 ifconfig.me/ip)
    bootstrapNode=/ip4/$ip/tcp/2300/p2p/$nodeid
    echo $bootstrapNode
    

ถ้าถูกต้องมันจะ show ประมาณนี้ จดเอาไว้ด้วย

    /ip4/<ip เครื่องเรา>/tcp/2300/p2p/และnodeid
    

### **Create a station**

    go run cmd/main.go create-station --accountName airchainsจากข้างบน --accountPath $HOME/.tracks/junction-accounts/keys --jsonRPC "https://junction-testnet-rpc.synergynodes.com/" --info "WASM Track" --tracks เลขกระเป๋าขึ้นต้นด้วย air --bootstrapNode "bootstrapNode"
    

รอซักพักเช่นเคยมันจะขึ้นแบบนี้ คุณได้ไปต่อ

    [2024-06-11 10:16:32] » tracks address: air1mcpx52vmr2nl75yppl0xw2w5htgnv
    [2024-06-11 10:16:32] » Currently user have 2.000000AMF
    [2024-06-11 10:16:44] » txHash: 3D7688A44BCDBED043380C5367B0B1320187B34E46B6C52E82BD16843D145FE3
    [2024-06-11 10:16:44] » /root/.tracks/config/genesis.json created
    [2024-06-11 10:16:44] » vrfPrivKey ID: 124014616c36ba23183504643d101a875c99531732bb83f6366
    [2024-06-11 10:16:44] » vrfPubKey ID: 13223019114f6a1d4d2068bf2dd58982d63d5c914412976a5291372a51deb542
    [2024-06-11 10:16:44] » Successfully Created VRF public and private Keys
    [2024-06-11 10:16:44] » Successfully created station
    

อัดแกสเพื่อความแรง

    sed -i 's/gasFees := fmt.Sprintf("%damf", gas)/gasFees := fmt.Sprintf("%damf", 2*gas)/' "$HOME/tracks/junction/verifyPod.go"
    sed -i 's/gasFees := fmt.Sprintf("%damf", gas)/gasFees := fmt.Sprintf("%damf", 2*gas)/' "$HOME/tracks/junction/validateVRF.go"
    sed -i 's/gasFees := fmt.Sprintf("%damf", gas)/gasFees := fmt.Sprintf("%damf", 3*gas)/' "$HOME/tracks/junction/submitPod.go"
    

### **Start station**

    sudo tee /etc/systemd/system/stationd.service > /dev/null << EOF
    [Unit]
    Description=station track service
    After=network-online.target
    [Service]
    User=$USER
    WorkingDirectory=$HOME/tracks/
    ExecStart=$(which go) run cmd/main.go start
    Restart=always
    RestartSec=3
    LimitNOFILE=65535
    [Install]
    WantedBy=multi-user.target
    EOF
    

    sudo systemctl daemon-reload
    sudo systemctl enable stationd
    sudo systemctl restart stationd
    

นับเวลาในใจซัก 2-3 นาที check log

    sudo journalctl -u stationd -f -o cat
    

ถ้ามันขยับๆก็ไปต่อ กด Ctrl + C เพื่อออกจาก log

**Flash TX**
------------

Creating a Script

    cd
    addr=$($HOME/wasm-station/build/wasmstationd keys show node --keyring-backend test -a)
    sudo tee spam.sh > /dev/null << EOF
    #!/bin/bash
    
    while true; do
      $HOME/wasm-station/build/wasmstationd tx bank send node ${addr} 1stake --from node --chain-id station-1 --keyring-backend test -y 
      sleep 6  # Add a sleep to avoid overwhelming the system or network
    done
    EOF
    

    nohup bash spam.sh &
    

มันจะดูนิ่งๆเรา กด enter ไปเลย

    cat nohup.out
    

  
ต้องขึ้นแบบนี้คุณได้ไปต่อ

    code: 0
    codespace: ""
    data: ""
    events: []
    gas_used: "0"
    gas_wanted: "0"
    height: "0"
    info: ""
    logs: []
    raw_log: ""
    timestamp: ""
    tx: null
    txhash: F2F9C6911D3D48C98CAC47773E0B7B4C8E9AD23BFD10692177BA5C8C69980A3B
    code: 0
    codespace: ""
    data: ""
    events: []
    gas_used: "0"
    gas_wanted: "0"
    height: "0"
    info: ""
    logs: []
    raw_log: ""
    timestamp: ""
    tx: null
    txhash: ACB167A5B5E806B59497EA49B825106E1AB4C8FA7808AA89A726F4109E4E00FB
    

  
ดู log อีกรอบ

    sudo journalctl -u stationd -f -o cat
    

![ต้อง successfully ประมาณ 2 ตัวตามรูป ถ้าไม่ได้ให้ไป check port เราเปิด port ครบมั้ย](https://storage.googleapis.com/papyrus_images/6b66075ed0c0387a00eec1ecd8c4305b7daf057e3f12e89c2734143d6fb4c79c.png)

ต้อง successfully ประมาณ 2 ตัวตามรูป ถ้าไม่ได้ให้ไป check port เราเปิด port ครบมั้ย

####ถ้าขึ้นว่า RPC ERROR ไม่ขึ้นข้อนี้ไม่ต้องใส่นะผ่านได้เลย####

    sudo systemctl daemon-reload
    sudo systemctl enable stationd
    sudo systemctl restart stationd
    journalctl -u stationd -f -o cat
    

สร้างกระเป๋า
------------

ผมใช้ของที่นี้

[https://www.leapwallet.io/](https://www.leapwallet.io/)

![กดนี้นะ](https://storage.googleapis.com/papyrus_images/06cc1ac6ef9163915a6ddb761d9bbb615e9e820cb1e0a7ee6568eb82f215f375.png)

กดนี้นะ

![เอา numer key มาใส่ 24 คำ แล้ว import](https://storage.googleapis.com/papyrus_images/ba2ce60d711bf3a363a7d862870bc1dcf935d4bd7a03f1de03c863cb397f45b1.png)

เอา numer key มาใส่ 24 คำ แล้ว import

ไปนี้ต่อ เข้าไปแล้วเชื่อมกระเป๋ามันจะต่อ chain ให้

[https://points.airchains.io/](https://points.airchains.io/)

![เมื่อถึงข้อนี้ point ต้องเข้าแล้วนะครับมากน้อย](https://storage.googleapis.com/papyrus_images/e356177ce1788c539a7a276ec6f47df77d5fec1ee40457f551087076f87283e7.png)

เมื่อถึงข้อนี้ point ต้องเข้าแล้วนะครับมากน้อย

ยังๆยังไม่จบมีต่อ
-----------------

เข้า discord

[https://discord.gg/p7rmv8WT](https://discord.gg/p7rmv8WT)

หัวข้อ Validator >> Role-request

![กดที่ลูกศรขวาบนมันจะไปอีกหน้านึง](https://storage.googleapis.com/papyrus_images/82350e32328ec89db2aabbc0cb182657015595aad9d473d676110cd611bae545.png)

กดที่ลูกศรขวาบนมันจะไปอีกหน้านึง

เอา URL ไปวางใน Discord เพื่อขอ Role Validator.

+++ congratulations +++
-----------------------

จบครับเหนือยจุง และอีกเช่นเคยนะครับ การ run node ไม่ได้แปลว่าเราจะได้เสมอไป สำหรับท่านที่ต้องเช้า VPS มา run นั้นถือเป็นต้นทุนและความเสี่ยง คำนวนกันดีๆนะครับ HAPPY NODE RUNNER !!

[Subscribe](null)

---

*Originally published on [Huge|NodeRunner](https://paragraph.com/@0xhuge/airchains-cosmwasm-zk-rollup-node)*
