From d3b96ca35ca8ca2a46e5d734b1b58d1cd5ee24aa Mon Sep 17 00:00:00 2001 From: smeb y <48400087+a3165458@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:00:54 +0800 Subject: [PATCH] Create Fuel.sh --- Fuel.sh | 402 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 Fuel.sh diff --git a/Fuel.sh b/Fuel.sh new file mode 100644 index 0000000..95b6d63 --- /dev/null +++ b/Fuel.sh @@ -0,0 +1,402 @@ +#!/bin/bash + +# 脚本保存路径 +SCRIPT_PATH="$HOME/Fuel.sh" + +# 自动设置快捷键的功能 +function check_and_set_alias() { + local alias_name="fuel" + local profile_file="$HOME/.profile" + + # 检查快捷键是否已经设置 + if ! grep -q "$alias_name" "$profile_file"; then + echo "设置快捷键 '$alias_name' 到 $profile_file" + echo "alias $alias_name='bash $SCRIPT_PATH'" >> "$profile_file" + # 添加提醒用户激活快捷键的信息 + echo "快捷键 '$alias_name' 已设置。请运行 'source $profile_file' 来激活快捷键,或重新登录。" + else + # 如果快捷键已经设置,提供一个提示信息 + echo "快捷键 '$alias_name' 已经设置在 $profile_file。" + echo "如果快捷键不起作用,请尝试运行 'source $profile_file' 或重新登录。" + fi +} + +function install_node() { + +# 安装Rust +echo "正在安装Rust..." +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +source $HOME/.cargo/env + +# 安装Fuel服务 +echo "正在安装Fuel服务..." +curl https://install.fuel.network | sh +source $HOME/.fuelup/env +sleep 5 +source /root/.bashrc + + +# 配置chainConfig文件 +cat > chainConfig.json << EOF +{ + "chain_name": "Testnet Beta 5", + "block_gas_limit": 30000000, + "initial_state": { + "coins": [ + { + "owner": "0xa1184d77d0d08a064e03b2bd9f50863e88faddea4693a05ca1ee9b1732ea99b7", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "owner": "0xb5566df884bee4e458151c2fe4082c8af38095cc442c61e0dc83a371d70d88fd", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "owner": "0x9da7247e1d63d30d69f136f0f8654ee8340362c785b50f0a60513c7edbf5bb7c", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "owner": "0x4b2ca966aad1a9d66994731db5138933cf61679107c3cde2a10d9594e47c084e", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "owner": "0x26183fbe7375045250865947695dfc12500dcc43efb9102b4e8c4d3c20009dcb", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "owner": "0x81f3a10b61828580d06cc4c7b0ed8f59b9fb618be856c55d33decd95489a1e23", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "owner": "0x587aa0482482efea0234752d1ad9a9c438d1f34d2859b8bef2d56a432cb68e33", + "amount": "0x1000000000000000", + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "contracts": [ + { + "contract_id": "0x7777777777777777777777777777777777777777777777777777777777777777", + "code": "0x9000000994318e6e453f30e85bf6088f7161d44e57b86a6af0c955d22b353f91b2465f5e6140000a504d00205d4d30001a4860004945048076440001240400005050c0043d51345024040000", + "salt": "0x1bfd51cb31b8d0bc7d93d38f97ab771267d8786ab87073e0c2b8f9ddc44b274e" + } + ] + }, + "consensus_parameters": { + "tx_params": { + "max_inputs": 255, + "max_outputs": 255, + "max_witnesses": 255, + "max_gas_per_tx": 30000000, + "max_size": 17825792 + }, + "predicate_params": { + "max_predicate_length": 1048576, + "max_predicate_data_length": 1048576, + "max_message_data_length": 1048576, + "max_gas_per_predicate": 30000000 + }, + "script_params": { + "max_script_length": 1048576, + "max_script_data_length": 1048576 + }, + "contract_params": { + "contract_max_size": 16777216, + "max_storage_slots": 65536 + }, + "fee_params": { + "gas_price_factor": 92, + "gas_per_byte": 63 + }, + "chain_id": 0, + "gas_costs": { + "add": 2, + "addi": 2, + "aloc": 1, + "and": 2, + "andi": 2, + "bal": 366, + "bhei": 2, + "bhsh": 2, + "burn": 33949, + "cb": 2, + "cfei": 2, + "cfsi": 2, + "croo": 40, + "div": 2, + "divi": 2, + "eck1": 3347, + "ecr1": 46165, + "ed19": 4210, + "eq": 2, + "exp": 2, + "expi": 2, + "flag": 1, + "gm": 2, + "gt": 2, + "gtf": 16, + "ji": 2, + "jmp": 2, + "jne": 2, + "jnei": 2, + "jnzi": 2, + "jmpf": 2, + "jmpb": 2, + "jnzf": 2, + "jnzb": 2, + "jnef": 2, + "jneb": 2, + "lb": 2, + "log": 754, + "lt": 2, + "lw": 2, + "mint": 35718, + "mlog": 2, + "mod": 2, + "modi": 2, + "move": 2, + "movi": 2, + "mroo": 5, + "mul": 2, + "muli": 2, + "mldv": 4, + "noop": 1, + "not": 2, + "or": 2, + "ori": 2, + "poph": 3, + "popl": 3, + "pshh": 4, + "pshl": 4, + "ret_contract": 733, + "rvrt_contract": 722, + "sb": 2, + "sll": 2, + "slli": 2, + "srl": 2, + "srli": 2, + "srw": 253, + "sub": 2, + "subi": 2, + "sw": 2, + "sww": 29053, + "time": 79, + "tr": 46242, + "tro": 33251, + "wdcm": 3, + "wqcm": 3, + "wdop": 3, + "wqop": 3, + "wdml": 3, + "wqml": 4, + "wddv": 5, + "wqdv": 7, + "wdmd": 11, + "wqmd": 18, + "wdam": 9, + "wqam": 12, + "wdmm": 11, + "wqmm": 11, + "xor": 2, + "xori": 2, + "call": { + "LightOperation": { + "base": 21687, + "units_per_gas": 4 + } + }, + "ccp": { + "LightOperation": { + "base": 59, + "units_per_gas": 20 + } + }, + "csiz": { + "LightOperation": { + "base": 59, + "units_per_gas": 195 + } + }, + "k256": { + "LightOperation": { + "base": 282, + "units_per_gas": 3 + } + }, + "ldc": { + "LightOperation": { + "base": 45, + "units_per_gas": 65 + } + }, + "logd": { + "LightOperation": { + "base": 1134, + "units_per_gas": 2 + } + }, + "mcl": { + "LightOperation": { + "base": 3, + "units_per_gas": 523 + } + }, + "mcli": { + "LightOperation": { + "base": 3, + "units_per_gas": 526 + } + }, + "mcp": { + "LightOperation": { + "base": 3, + "units_per_gas": 448 + } + }, + "mcpi": { + "LightOperation": { + "base": 7, + "units_per_gas": 585 + } + }, + "meq": { + "LightOperation": { + "base": 11, + "units_per_gas": 1097 + } + }, + "retd_contract": { + "LightOperation": { + "base": 1086, + "units_per_gas": 2 + } + }, + "s256": { + "LightOperation": { + "base": 45, + "units_per_gas": 3 + } + }, + "scwq": { + "HeavyOperation": { + "base": 30375, + "gas_per_unit": 28628 + } + }, + "smo": { + "LightOperation": { + "base": 64196, + "units_per_gas": 1 + } + }, + "srwq": { + "HeavyOperation": { + "base": 262, + "gas_per_unit": 249 + } + }, + "swwq": { + "HeavyOperation": { + "base": 28484, + "gas_per_unit": 26613 + } + }, + "contract_root": { + "LightOperation": { + "base": 45, + "units_per_gas": 1 + } + }, + "state_root": { + "HeavyOperation": { + "base": 350, + "gas_per_unit": 176 + } + }, + "new_storage_per_byte": 63, + "vm_initialization": { + "LightOperation": { + "base": 1645, + "units_per_gas": 14 + } + } + }, + "base_asset_id": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "consensus": { + "PoA": { + "signing_key": "f65d6448a273b531ee942c133bb91a6f904c7d7f3104cdaf6b9f7f50d3518871" + } + } +} +EOF + +# 生成P2P密钥 +echo "正在生成P2P密钥..." +KEY_OUTPUT=$(fuel-core-keygen new --key-type peering) +echo "${KEY_OUTPUT}" +read -p "请从上方输出中复制'secret'值,并在此粘贴: " SECRET + +# 用户输入节点名称和RPC地址 +read -p "请输入您想设置的节点名称: " NODE_NAME +read -p "请输入您的ETH Sepolia RPC地址: " RPC + +# 开始配置并运行节点 +echo "开始配置并启动您的fuel节点..." + +screen -dmS Fuel bash -c "fuel-core run \ +--service-name '${NODE_NAME}' \ +--keypair '${SECRET}' \ +--relayer '${RPC}' \ +--ip 0.0.0.0 --port 4000 --peering-port 30333 \ +--db-path ~/.fuel_beta5 \ +--chain ./chainConfig.json \ +--utxo-validation --poa-instant false --enable-p2p \ +--min-gas-price 1 --max-block-size 18874368 --max-transmit-size 18874368 \ +--reserved-nodes /dns4/p2p-beta-5.fuel.network/tcp/30333/p2p/16Uiu2HAmSMqLSibvGCvg8EFLrpnmrXw1GZ2ADX3U2c9ttQSvFtZX,/dns4/p2p-beta-5.fuel.network/tcp/30334/p2p/16Uiu2HAmVUHZ3Yimoh4fBbFqAb3AC4QR1cyo8bUF4qyi8eiUjpVP \ +--sync-header-batch-size 100 \ +--enable-relayer \ +--relayer-v2-listening-contracts 0x557c5cE22F877d975C2cB13D0a961a182d740fD5 \ +--relayer-da-deploy-height 4867877 \ +--relayer-log-page-size 2000 +" + +echo "节点配置完成并尝试启动。请使用screen -r Fuel 以确认节点状态。" + +} + +function check_service_status() { + screen -r Fuel + +} + + +# 主菜单 +function main_menu() { + clear + echo "脚本以及教程由推特用户大赌哥 @y95277777 编写,免费开源,请勿相信收费" + echo "================================================================" + echo "节点社区 Telegram 群组:https://t.me/niuwuriji" + echo "节点社区 Telegram 频道:https://t.me/niuwuriji" + echo "请选择要执行的操作:" + echo "1. 安装常规节点" + echo "2. 查看节点日志" + echo "3. 设置快捷键" + + read -p "请输入选项(1-3): " OPTION + + case $OPTION in + 1) install_node ;; + 2) check_service_status ;; + 3)check_and_set_alias ;; + *) echo "无效选项。" ;; + esac +} + +# 显示主菜单 +main_menu