109 lines
3.7 KiB
Markdown
109 lines
3.7 KiB
Markdown
|
# Veritas Revelata
|
||
|
|
||
|
The aim is to establish a robust framwork to combat
|
||
|
misinfomation, disinformation, and fake news, thereby providing a more re-
|
||
|
liable information system. This paper outlines the key components of the
|
||
|
proposal, including source evaluation, fact-checking, technological require-
|
||
|
ments, while also addressing the challenges and the ethical consideration
|
||
|
associated with such system.
|
||
|
|
||
|
the app contains of 2 main components a golang p2p node that runs the consesnsus algorithm for the blockchain
|
||
|
|
||
|
A decentralized frontend served over the internet or locally
|
||
|
|
||
|
|
||
|
# Containers used
|
||
|
- golang build: compliation container for compilling the app
|
||
|
- golang runner: runs the p2p node and the rpc server
|
||
|
- fe builder: compile and build the nodejs app for serving
|
||
|
- fe runner: serves the static files through SSR techonology for
|
||
|
|
||
|
# DEVOPS
|
||
|
The app requires a local registry running for develpoment use cases
|
||
|
The minikube local registry can be ran with:
|
||
|
```sh
|
||
|
minikube addons enable registry
|
||
|
```
|
||
|
running the applications requires
|
||
|
```sh
|
||
|
./start-app.sh
|
||
|
```
|
||
|
stopping it requires
|
||
|
```sh
|
||
|
./stop-app.sh
|
||
|
```
|
||
|
|
||
|
for checking the cluster with minikube you can run:
|
||
|
```sh
|
||
|
minikube dashboard
|
||
|
```
|
||
|
|
||
|
## Kubernetes
|
||
|
first we have the deployments:
|
||
|
### p2p-node Deployment:
|
||
|
|
||
|
- **Metadata**: The name of the deployment is p2p-node and it resides in the veritas namespace.
|
||
|
|
||
|
- **Replicas**: The desired number of replicas for this deployment is 1, meaning there should be one Pod running at any given time.
|
||
|
|
||
|
- **Pod Template**: This is the specification for creating Pods. It includes a single container.
|
||
|
|
||
|
- **Container**: The container is named p2pnode and uses the image localhost:5000/veritasnode. The image pull policy is IfNotPresent, meaning the image will be pulled only if it's not already present on the node.
|
||
|
|
||
|
- **Environment Variable**: There's an environment variable PORT set to 6000.
|
||
|
|
||
|
- **Ports**: The container exposes port 6000 for TCP traffic, and this port is also mapped to the host's port 6000.
|
||
|
|
||
|
- **Volume** Mounts: There's a volume mounted at /app using the volume named node-data.
|
||
|
|
||
|
- **Volumes**: The volume node-data is a PersistentVolumeClaim using the claim node-data.
|
||
|
### veritasfe Deployment:
|
||
|
|
||
|
- **Metadata**: The name of the deployment is veritasfe and it also resides in the veritas namespace.
|
||
|
- **Replicas**: The desired number of replicas for this deployment is also 1.
|
||
|
- **Selector**: The selector is looking for Pods with the label app: veritasfe.
|
||
|
- **Pod Template**:
|
||
|
- **Labels**: The Pod labels are app: veritasfe.
|
||
|
- **Container**: The container is named frontend and uses the image localhost:5000/veritasfe.
|
||
|
- **Ports**: The container exposes port 3000 for TCP traffic, and this port is also mapped to the host's port 3000.
|
||
|
- **Restart Policy**: The restart policy for the Pod is Always, meaning the containers in the Pod will always be restarted if they terminate.
|
||
|
|
||
|
### p2p-node Service
|
||
|
|
||
|
The `p2p-node` service is a service resource that exposes the `p2p-node`
|
||
|
|
||
|
- **Metadata:**
|
||
|
- Labels: `app: p2p-node`
|
||
|
- Name: `p2p-node`
|
||
|
- Namespace: `veritas`
|
||
|
|
||
|
- **Spec:**
|
||
|
- The service listens on port `6000` and forwards traffic to the target port `6000` on the `p2p-node` Pod.
|
||
|
|
||
|
- **Ports:**
|
||
|
- Name: `6000`
|
||
|
Port: `6000`
|
||
|
Target Port: `6000`
|
||
|
|
||
|
### frontend Service
|
||
|
|
||
|
The `frontend` service is a ervice resource that exposes the `frontend` deployment
|
||
|
|
||
|
- **Metadata:**
|
||
|
- Labels: `app: frontend`
|
||
|
- Name: `frontend`
|
||
|
- Namespace: `veritas`
|
||
|
|
||
|
- **Spec:**
|
||
|
- The service listens on port `3000` and forwards traffic to the target port `3000` on the `frontend` Pod.
|
||
|
|
||
|
- **Ports:**
|
||
|
- Name: `3000`
|
||
|
Port: `3000`
|
||
|
Target Port: `3000`
|
||
|
|
||
|
# Accessibility
|
||
|
the frontend can be accessed through localhost:3000 on any web browser
|
||
|
and the rpc server runs on localhost:6000
|
||
|
|