| .. | ||
| backend | ||
| veritasfe | ||
| deployment.yml | ||
| docker-compose.yml | ||
| README.md | ||
| service.yml | ||
| start-app.sh | ||
| statefulset.yaml | ||
| stop-app.sh | ||
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:
minikube addons enable registry
running the applications requires
./start-app.sh
stopping it requires
./stop-app.sh
for checking the cluster with minikube you can run:
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
- Labels:
-
Spec:
-
The service listens on port
6000and forwards traffic to the target port6000on thep2p-nodePod.- Ports:
- Name:
6000Port:6000Target Port:6000
- Name:
- Ports:
-
frontend Service
The frontend service is a ervice resource that exposes the frontend deployment
-
Metadata:
- Labels:
app: frontend - Name:
frontend - Namespace:
veritas
- Labels:
-
Spec:
-
The service listens on port
3000and forwards traffic to the target port3000on thefrontendPod.- Ports:
- Name:
3000Port:3000Target Port:3000
- Name:
- Ports:
-
Accessibility
the frontend can be accessed through localhost:3000 on any web browser and the rpc server runs on localhost:6000