> For the complete documentation index, see [llms.txt](https://docs.witnesschain.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.witnesschain.com/infinity-watch/proof-of-location-mainnet/architecture.md).

# Architecture

<figure><img src="/files/keRonD7mdDtkpyNWW40q" 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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.witnesschain.com/infinity-watch/proof-of-location-mainnet/architecture.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
