Skip to content

Commit

Permalink
แก้ไขเอกสาร และวิธีกำหนดค่า Relay
Browse files Browse the repository at this point in the history
  • Loading branch information
rushmi0 committed Nov 1, 2024
1 parent 31411a0 commit 4fd3ee9
Show file tree
Hide file tree
Showing 15 changed files with 191 additions and 185 deletions.
19 changes: 12 additions & 7 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,20 @@ DATABASE_USERNAME=rushmi0
DATABASE_PASSWORD=sql@min

# Relay info
RELAY_NAME=
RELAY_DESCRIPTION=
RELAY_NPUB=
RELAY_CONTACT=
NAME=lnwza007
DESCRIPTION=นึกแล้ว มึงต้องอ่าน
NPUB=npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry
CONTACT=lnwza007@rushmi0.win

# Policy settings
FOLLOWS_PASS=false
ALL_PASS=true
PROOF_OF_WORK_ENABLED=false
PROOF_OF_WORK_DIFFICULTY=32
FOLLOWS_PASS=false

POW_ENABLED=false
MIN_DIFFICULTY=32

MAX_FILTERS=17
MAX_LIMIT=100

BACKUP_ENABLED=
SYNC=
5 changes: 2 additions & 3 deletions .github/workflows/graalvm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ jobs:
run: |
sed -i 's/#DATABASE_URL=jdbc:postgresql:\/\/localhost:5432/DATABASE_URL=jdbc:postgresql:\/\/localhost:5432/' .env
sed -i 's/DATABASE_URL=jdbc:postgresql:\/\/relay-db:5432/#DATABASE_URL=jdbc:postgresql:\/\/relay-db:5432/' .env
# ปิดคอมเมนต์ relay-db และเปิดคอมเมนต์ localhost
# ขั้นตอนที่ 6: คอมไพล์โปรเจกต์โดยใช้ Gradle พร้อมตัวเลือก Native Image
# ขั้นตอนที่ 6: คอมไพล์โปรเจกต์
- name: Compile Project with GraalVM Native Image
run: ./gradlew nativeTestCompile
run: ./gradlew nativeOptimizedCompile
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ out/
.settings
.classpath
.factorypath
/test-results-native/test/TEST-junit-jupiter.xml
9 changes: 0 additions & 9 deletions Dockerfile.jenkins

This file was deleted.

68 changes: 30 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
- [📚 เอกสารเพิ่มเติม](#-เอกสารเพิ่มเติม)
- [💬 ติดต่อและสนับสนุน](#-ติดต่อและสนับสนุน)


## 🚀 คุณสมบัติที่รองรับ (NIPs)

- ✅ NIP-01 Basic protocol flow
Expand All @@ -65,59 +64,55 @@

### 1. กำหนดค่าข้อมูลรายละเอียดของ Relay เบื้องต้น

ไฟล์กำหนดค่าอยู่ที่ [`src/main/resources/application.toml`](src/main/resources/application.toml)
ไฟล์กำหนดค่าอยู่ที่ [`.env`](.env)

```toml
[nostr.relay.info]
name = "lnwza007"
description = "นึกแล้ว มึงต้องอ่าน"
npub = "npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry"
contact = "lnwza007@rushmi0.win"
```dotenv
NAME=lnwza007
DESCRIPTION=นึกแล้ว มึงต้องอ่าน
NPUB=npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry
CONTACT=lnwza007@rushmi0.win
```

| พารามิเตอร์ | คำอธิบาย |
|-------------|--------------------------------|
| name | ชื่อของ Relay |
| description | คำอธิบายเกี่ยวกับ Relay |
| npub | npub ของเจ้าของ Relay |
| contact | ที่อยู่อีเมลที่สามารถติดต่อได้ |
| พารามิเตอร์ | คำอธิบาย |
|---------------|--------------------------------|
| `NAME` | ชื่อของ Relay |
| `DESCRIPTION` | คำอธิบายเกี่ยวกับ Relay |
| `NPUB` | npub ของเจ้าของ Relay |
| `CONTACT` | ที่อยู่อีเมลที่สามารถติดต่อได้ |

### 2. กำหนดนโยบาย

หากไม่ได้กำหนดค่าใดๆ ค่าเริ่มต้นจะเป็น Public Relay ที่เปิดให้ทุกคนใช้งานได้

```toml
[nostr.relay.policy]
all-pass = true
follows-pass = false
```dotenv
ALL_PASS=true
FOLLOWS_PASS=false
[nostr.relay.policy.proof-of-work]
enabled = false
difficulty-minimum = 32
POW_ENABLED=false
MIN_DIFFICULTY=32
```

| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น | ลำดับความสำคัญ |
|----------------------------------|------------------------------------------------------|-------------|----------------|
| all-pass | รับ Event จากทุกคน | true | รองลงมา |
| follows-pass | รับ Event เฉพาะจากคนที่เจ้าของ Relay ติดตาม (NIP-02) | false | สูง |
| proof-of-work.enabled | เปิดใช้งานการตรวจสอบ Proof of Work | false | สูง |
| proof-of-work.difficulty-minimum | ค่าความยากขั้นต่ำสำหรับ Proof of Work | 32 | - |
| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น | ลำดับความสำคัญ |
|------------------|------------------------------------------------------|-------------|----------------|
| `ALL_PASS` | รับ Event จากทุกคน | true | รองลงมา |
| `FOLLOWS_PASS` | รับ Event เฉพาะจากคนที่เจ้าของ Relay ติดตาม (NIP-02) | false | สูง |
| `POW_ENABLED` | เปิดใช้งานการตรวจสอบ Proof of Work | false | สูง |
| `MIN_DIFFICULTY` | ค่าความยากขั้นต่ำสำหรับ Proof of Work | 32 | - |

> [!WARNING]\
> ค่าความยากระดับ 32 ค่อนข้างสูง หากต้องการลดความเข้มงวด แนะนำให้ตั้งค่าที่ น้อยลง หรือปิดไปเลยก็ได้
### 3. ตัวเลือกกำหนดค่าบริการพิเศษของ Relay

```toml
[nostr.relay.database.backup]
enabled = false
sync = ["wss://relay.damus.io", "wss://relay.snort.social", "wss://relay.siamstr.com", "wss://relay.notoshi.win"]
```dotenv
BACKUP_ENABLED=false
SYNC=wss://relay.rushmi0.win, wss://relay.plebstr.com
```

| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
|-------------|-------------------------------------------------------------------------|-------------|
| enabled | เปิดใช้งานการดึงข้อมูลผู้ติดตามของเจ้าของ Relay (NIP-02) จาก Relay อื่น | false |
| sync | รายการ Relay อื่นๆ ที่จะดึงข้อมูลมา | - |
| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
|------------------|-------------------------------------------------------------------------|-------------|
| `BACKUP_ENABLED` | เปิดใช้งานการดึงข้อมูลผู้ติดตามของเจ้าของ Relay (NIP-02) จาก Relay อื่น | false |
| `SYNC` | รายการ Relay อื่นๆ ที่จะดึงข้อมูลมา | - |

## 🛠 ขั้นตอนการติดตั้งและใช้งาน

Expand Down Expand Up @@ -163,9 +158,6 @@ docker compose up relay-db relay-app-jvm
<video src="https://github.com/user-attachments/assets/37c76676-b627-4a9c-bd77-fa76f71d7142" width="850" height="440" controls></video>
</div>




## 🔧 การแก้ไขปัญหาเบื้องต้น

- **ปัญหา**: Docker ไม่สามารถรันได้\
Expand Down
69 changes: 33 additions & 36 deletions doc/README-EN.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<div align="center">

<picture>
<source media="(prefers-color-scheme: dark)" srcset="./img/logo-px-white.svg" width="445">
<img alt="Fenrir-s logo" src="./img/logo-px-black.svg" width="445">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/rushmi0/Fenrir-s/7451f0d4057c206d793368bbb373343a7fc990f8/doc/img/logo-px-white.svg" width="445">
<img alt="Fenrir-s logo" src="https://raw.githubusercontent.com/rushmi0/Fenrir-s/7451f0d4057c206d793368bbb373343a7fc990f8/doc/img/logo-px-black.svg" width="445">
</picture>

</div>
Expand Down Expand Up @@ -65,60 +65,57 @@ and is easy to set up.

### 1. Basic Relay Details Configuration

Configuration file is located at [`src/main/resources/application.toml`](src/main/resources/application.toml)
Configuration file is located at [`.env`](.env)

```toml
[nostr.relay.info]
name = "lnwza007"
description = "นึกแล้ว มึงต้องอ่าน"
npub = "npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry"
contact = "lnwza007@rushmi0.win"
```dotenv
NAME=lnwza007
DESCRIPTION=นึกแล้ว มึงต้องอ่าน
NPUB=npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry
CONTACT=lnwza007@rushmi0.win
```

| Parameter | Description |
|--------------|--------------------------|
| name | Name of the Relay |
| description | Description of the Relay |
| npub | Relay owner's npub |
| contact | Contact email address |
| Parameter | Description |
|----------------|--------------------------|
| `NAME` | Name of the Relay |
| `DESCRIPTION` | Description of the Relay |
| `NPUB` | Relay owner's npub |
| `CONTACT` | Contact email address |

### 2. Policy Configuration

If no configuration is set, the default will be a Public Relay open for everyone.

```toml
[nostr.relay.policy]
all-pass = true
follows-pass = false
```dotenv
ALL_PASS=true
FOLLOWS_PASS=false
[nostr.relay.policy.proof-of-work]
enabled = false
difficulty-minimum = 32
POW_ENABLED=false
MIN_DIFFICULTY=32
```

| Parameter | Description | Default | Priority |
|-----------------------------------|--------------------------------------------------|----------|----------|
| all-pass | Accept Events from everyone | true | Low |
| follows-pass | Accept Events only from followed users (NIP-02) | false | High |
| proof-of-work.enabled | Enable Proof of Work verification | false | High |
| proof-of-work.difficulty-minimum | Minimum difficulty level for Proof of Work | 32 | - |

| Parameter | Description | Default | Priority |
|-------------------|--------------------------------------------------|----------|----------|
| `ALL_PASS` | Accept Events from everyone | true | Low |
| `FOLLOWS_PASS` | Accept Events only from followed users (NIP-02) | false | High |
| `POW_ENABLED` | Enable Proof of Work verification | false | High |
| `MIN_DIFFICULTY` | Minimum difficulty level for Proof of Work | 32 | - |

> [!WARNING]\
> A difficulty level of 32 is quite high. If you want to lower the strictness, it is recommended to set a lower value or
> disable it altogether.
### 3. Special Service Configuration Options

```toml
[nostr.relay.database.backup]
enabled = false
sync = ["wss://relay.damus.io", "wss://relay.snort.social", "wss://relay.siamstr.com", "wss://relay.notoshi.win"]
```dotenv
BACKUP_ENABLED=false
SYNC=wss://relay.rushmi0.win, wss://relay.plebstr.com
```

| Parameter | Description | Default |
|------------|-----------------------------------------------------------|----------|
| enabled | Enable fetching follower data (NIP-02) from other Relays | false |
| sync | List of other Relays to fetch data from | - |
| Parameter | Description | Default |
|-------------------|-----------------------------------------------------------|----------|
| `BACKUP_ENABLED` | Enable fetching follower data (NIP-02) from other Relays | false |
| `SYNC` | List of other Relays to fetch data from | - |

## 🛠 Installation and Usage

Expand Down
68 changes: 32 additions & 36 deletions doc/README-JP.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<div align="center">

<picture>
<source media="(prefers-color-scheme: dark)" srcset="./img/logo-px-white.svg" width="445">
<img alt="Fenrir-s logo" src="./img/logo-px-black.svg" width="445">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/rushmi0/Fenrir-s/7451f0d4057c206d793368bbb373343a7fc990f8/doc/img/logo-px-white.svg" width="445">
<img alt="Fenrir-s logo" src="https://raw.githubusercontent.com/rushmi0/Fenrir-s/7451f0d4057c206d793368bbb373343a7fc990f8/doc/img/logo-px-black.svg" width="445">
</picture>

</div>
Expand Down Expand Up @@ -62,59 +62,55 @@

### 1. Relayの具体的な詳細の設定

設定ファイルは [`src/main/resources/application.toml`](src/main/resources/application.toml)
設定ファイルは [`.env`](.env)

```toml
[nostr.relay.info]
name = "lnwza007"
description = "นึกแล้ว มึงต้องอ่าน"
npub = "npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry"
contact = "lnwza007@rushmi0.win"
```dotenv
NAME=lnwza007
DESCRIPTION=นึกแล้ว มึงต้องอ่าน
NPUB=npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry
CONTACT=lnwza007@rushmi0.win
```

| パラメータ | 説明 |
|-------------|----------------|
| name | Relayの名前 |
| description | Relayについての説明 |
| npub | Relayの所有者のnpub |
| contact | 連絡先のメールアドレス |
| パラメータ | 説明 |
|---------------|----------------|
| `NAME` | Relayの名前 |
| `DESCRIPTION` | Relayについての説明 |
| `NPUB` | Relayの所有者のnpub |
| `CONTACT` | 連絡先のメールアドレス |

### 2. ポリシーの設定

設定されていない場合はデフォルトで誰でも使用できるPublic Relayになります。

```toml
[nostr.relay.policy]
all-pass = true
follows-pass = false
```dotenv
ALL_PASS=true
FOLLOWS_PASS=false
[nostr.relay.policy.proof-of-work]
enabled = false
difficulty-minimum = 32
POW_ENABLED=false
MIN_DIFFICULTY=32
```

| パラメータ | 説明 | デフォルト | 優先度 |
|----------------------------------|----------------------------------------|-------|-----|
| all-pass | 誰からでもEventを受信 | true ||
| follows-pass | Relayの所有者がフォローしている人だけのEventを受信(NIP-02) | false | 高い |
| proof-of-work.enabled | Proof of Workの確認を有効にする | false | 高い |
| proof-of-work.difficulty-minimum | Proof of Workの難易度の最小限 | 32 | - |
| パラメータ | 説明 | デフォルト | 優先度 |
|------------------|----------------------------------------|-------|-----|
| `ALL_PASS` | 誰からでもEventを受信 | true ||
| `FOLLOWS_PASS` | Relayの所有者がフォローしている人だけのEventを受信(NIP-02) | false | 高い |
| `POW_ENABLED` | Proof of Workの確認を有効にする | false | 高い |
| `MIN_DIFFICULTY` | Proof of Workの難易度の最小限 | 32 | - |

> [!WARNING]\
> 難易度レベル32はかなり高いので、厳しさを下げたい場合、より低く設定するか閉じることをおすすめです。
### 3. Relayの特別なサービスの選択肢

```toml
[nostr.relay.database.backup]
enabled = false
sync = ["wss://relay.damus.io", "wss://relay.snort.social", "wss://relay.siamstr.com", "wss://relay.notoshi.win"]
```dotenv
BACKUP_ENABLED=false
SYNC=wss://relay.rushmi0.win, wss://relay.plebstr.com
```

| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
|-------------|-------------------------------------------------------|-------------|
| enabled | Relay (NIP-02) の所有者をフォローしている人のデータを他のRelayから取る機能を有効にする | false |
| sync | 他のRelayを取るリスト | - |
| パラメータ | 説明 | デフォルト |
|------------------|-------------------------------------------------------|-------|
| `BACKUP_ENABLED` | Relay (NIP-02) の所有者をフォローしている人のデータを他のRelayから取る機能を有効にする | false |
| `SYNC` | 他のRelayを取るリスト | - |

## 🛠 インストールと使用の手順

Expand Down
2 changes: 1 addition & 1 deletion script/http/client_req.http
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ accept: application/nostr+json

###

GET http://localhost:6724
GET http://localhost:6725
accept: application/nostr+json


Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/org/fenrirs/relay/Gateway.kt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class Gateway @Inject constructor(
.header(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "*")
}

LOG.info("${YELLOW}accept: $RESET$accept ${BLUE}session: $RESET${session?.id}")
//LOG.info("${YELLOW}accept: $RESET$accept ${BLUE}session: $RESET${session?.id}")
val contentType = when {
accept == "application/nostr+json" -> MediaType.APPLICATION_JSON
else -> MediaType.TEXT_HTML
Expand Down
Loading

0 comments on commit 4fd3ee9

Please sign in to comment.