4.2 KiB
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
6000
and forwards traffic to the target port6000
on thep2p-node
Pod.- Ports:
- Name:
6000
Port:6000
Target 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
3000
and forwards traffic to the target port3000
on thefrontend
Pod.- Ports:
- Name:
3000
Port:3000
Target Port:3000
- Name:
- Ports:
-
PersistentVolumeClaim
The PersistentVolumeClaim
(is a resource that requests storage for a Pod. In this case, the PVC is used to request storage for the p2p-node
Pod.
-
Metadata:
- Name:
node-data
- Namespace:
veritas
- Name:
-
Spec:
-
Access Modes:
ReadWriteOnce
The PVC requests a volume with read-write access for a single node.
-
Resources:
- Requests:
-
Storage:
300Mi
The PVC requests 300Mi of storage.
-
- Requests:
-
Accessibility
the frontend can be accessed through localhost:3000 on any web browser and the rpc server runs on localhost:6000