# L1节点运行教程

欢迎使用我们的安装指南，这里将指导您一步步完成K3s的安装以及Titan L1节点的配置和启动。请按照下面的步骤操作，确保您的系统配置符合所有要求。

## 前置步骤：安装 K3s

### 1. 安装 K3s：

在您的终端中运行以下命令以安装K3s。此步骤将自动下载并安装K3s，同时禁用不必要的组件：

```bash
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -s -
```

### 2.配置 kubeconfig：

配置kubectl命令行工具的访问权限：

```
mkdir ~/.kube
sudo cat /etc/rancher/k3s/k3s.yaml | tee ~/.kube/config >/dev/null
```

### 3.验证K3s安装成功：

安装完成后，使用以下命令确认K3s已正确安装并运行：

```bash
kubectl get nodes
```

### 4.安装 Helm 工具：

Helm是管理Kubernetes应用的工具。通过以下命令安装Helm：

```bash
wget https://get.helm.sh/helm-v3.11.0-linux-amd64.tar.gz
tar -zxvf helm-v3.11.0-linux-amd64.tar.gz
install linux-amd64/helm /usr/local/bin/helm
```

### 5.安装 Ingress Nginx：

通过Helm安装Ingress Nginx，为应用添加HTTP路由规则：

```bash
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace
```

### 6.使用挂载盘 `/mnt/storage`：

* 移除默认的 `local-path StorageClass` 标记：

{% code overflow="wrap" %}

```bash
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
```

{% endcode %}

* 创建并设置新的存储类为默认：

创建 `storageclass.yaml`文件，并填入以下内容：

```bash
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: rancher.io/local-path
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Delete
parameters:
  path: "/mnt/storage"
```

应用StorageClass到K3s集群：

```bash
kubectl apply -f storageclass.yaml
```

* 更新 ConfigMap 路径为 `/mnt/storage`：

{% code overflow="wrap" %}

```bash
kubectl patch configmap local-path-config -n kube-system --type=json -p='[{"op": "replace", "path": "/data/config.json", "value":"{\n  \"nodePathMap\":[\n  {\n    \"node\":\"DEFAULT_PATH_FOR_NON_LISTED_NODES\",\n    \"paths\":[\"/mnt/storage\"]\n  }\n  ]\n}"}]'
```

{% endcode %}

## Titan L1 节点安装和启动

### <mark style="color:red;">**网络要求：**</mark>

在开始之前，请确保以下端口在您的网络防火墙或路由器上已开放，以确保节点正常通信：

* **9000  TCP**: 用于节点之间的通信。
* **2345  TCP/UDP**: 用于节点的广播和数据同步。
* **80 TCP:** 用于HTTP通信。
* **443 TCP:** 用于HTTPS通信。

*<mark style="color:red;">\*如果节点的网络设置不符合我们的要求，节点将无法正常工作，您也将无法获得任何奖励。\*</mark>*

### 安装步骤：

### **1.下载 `titan-L1` 程序:**

首先，打开您的Linux终端，并使用以下命令下载最新版本的 `titan-L1` 程序：

{% code overflow="wrap" %}

```bash
wget https://github.com/Titannet-dao/titan-node/releases/download/v0.1.21/titan-l1-guardian
```

{% endcode %}

### **2.设置执行权限:**

下载完成后，需要给这个程序文件设置适当的执行权限，以确保可以顺利运行。请输入以下命令：

```bash
chmod 0755 titan-l1-guardian
```

### **3.配置存储环境变量:**

Titan程序需要知道存储数据的位置。请根据您的系统环境，选择合适的存储路径，然后设置环境变量。例如，如果您希望使用 `/mnt/storage` 作为存储路径，可以使用以下命令：

```bash
export TITAN_METADATAPATH=/mnt/storage
export TITAN_ASSETSPATHS=/mnt/storage
```

请确保替换 `<存储路径>` 为您实际的路径。

### 4.将程序设置为系统服务：

创建一个服务文件 `/etc/systemd/system/titan.service`：

```bash
sudo nano /etc/systemd/system/titan.service
```

添加以下内容到文件中：

{% code overflow="wrap" %}

```bash
[Unit]
Description=Titan L1 Guardian Service
After=network.target

[Service]
User=root
ExecStart=/path/to/titan-l1-guardian daemon start --init --url https://cassini-locator.titannet.io:5000/rpc/v0 --code <code_id>
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

{% endcode %}

注意： 替换 `/path/to/titan-l1-guardian` 和 `<code_id>` 为实际路径和代码ID。

*这里需要您提供一个有效的 `code_id`，如果您已经通过了L1节点的审批， <mark style="color:red;">`code_id`</mark> <mark style="color:red;"></mark><mark style="color:red;">可以在您的</mark><mark style="color:red;">**TG/邮箱**</mark><mark style="color:red;">中查看。</mark>*

### **5.**&#x542F;用和启动服务：

在启用服务之前，确保系统识别了新的服务文件：

```bash
sudo systemctl daemon-reload
sudo systemctl enable titan.service
sudo systemctl start titan.service
```

### **6. 👉**[**申请身份码**](/titan-network-cn/hui-geng-si-ce-shi-wang/huygens-testnet/an-zhuang-cheng-xu-zhuan-qu/bang-ding-shen-fen-ma.md)**👈**

### 7.绑定身份码:

*将申请到的 <mark style="color:red;">**身份码**</mark> 替换 <mark style="color:red;">**your-hash-here**</mark>*

{% code overflow="wrap" %}

```
./titan-l1-guardian bind --hash=your-hash-here https://api-test1.container1.titannet.io/api/v2/device/binding
```

{% endcode %}

#### 注意事项：

* 确保您使用的存储路径存在且具备写入权限。
* 运行过程中的所有输出将被重定向到 `/var/log/guardian.log`，您可以随时查看该日志文件以监控程序状态。
* 如果您在任何步骤中遇到问题，请重新检查您输入的命令是否正确，或联系技术支持获取帮助。

以上就是安装和配置Titan L1节点以及K3s的全部步骤。这样设置后，您的Titan节点将作为系统服务运行，确保在遇到意外时能自动重启。如果有任何疑问或需要帮助，请联系我们的技术支持团队。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://titannet.gitbook.io/titan-network-cn/3-ce-ka-xi-ni-ce-shi-wang/yun-xing-jie-dian/l1-guardian-jie-dian/l1-jie-dian-yun-xing-jiao-cheng.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
