# Architecture

<figure><img src="https://651400886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaZ7PXq43vesxvXxlBG9x%2Fuploads%2FTqVYwO6H3iEMYJTcbknn%2FPoL%20Design.jpg?alt=media&#x26;token=3e8d4105-12e4-4efe-8fdd-6eb54bcf2130" alt=""><figcaption></figcaption></figure>

## Challenger Selection Logic for Decentralized Proof of Location

This technical note describes the logic and constraints for selecting challenger nodes in a decentralized proof of location (PoL) system. The selection process ensures that challengers are both active and capable of participating in the verification process.&#x20;

{% hint style="info" %}
The selection process is currently centralized, carried out by the Challenge Coordinator
{% endhint %}

### <mark style="color:blue;">Inclusion Criteria</mark>

#### 1. Activity Status

* Challengers must have been active within the last 60 seconds
* This ensures only currently available nodes are selected for challenges

#### 2. Wallet Requirements

* All challengers must have an associated wallet address
* Wallet address is used for:
  * Identity verification
  * Transaction signing

#### 3. IP Address Rules

**If Prover with Private IP**

* Only challengers with public IP addresses are eligible
* This ensures reliable communication paths
* Prevents potential NAT traversal issues

**If Prover with Public IP**

* Both public and private IP challengers are eligible
* Allows for greater network participation
* Must still meet other selection criteria

### <mark style="color:blue;">Exclusions</mark>

#### 4. Participation Status

* Paused devices are excluded
  * Prevents selection of maintenance mode devices
  * Allows nodes to opt-out temporarily
* Currently active challengers are excluded
  * Prevents concurrent challenge participation
  * Ensures resource availability

#### 5. Geographic Constraints

* Maximum distance: 2000 kilometers from the prover. Determined by the `lat, long` config&#x20;
* Distance calculation:
  * Based on registered coordinates in the initial setup phase
  * Uses great circle distance formula
* Purpose:
  * Ensures realistic challenge timeframes
  * Reduces network latency impact
  * Maintains challenge credibility

#### 6. Selection Limits

* Maximum of 128 challengers per challenge
* Self-selection prevention:
  * Prover cannot be selected as its own challenger
  * Verified via public key comparison
