📚 go-pdu - Awesome Go Library for Distributed Systems

Go Gopher mascot for go-pdu

A decentralized identity-based social network.

🏷️ Distributed Systems
📂 Packages that help with building Distributed Systems.
47 stars
View on GitHub 🔗

Detailed Description of go-pdu

ParaDigi Universe | PDU   Tweet   Telegram

GoDoc GoReport License Mentioned in Awesome Go

Golang implementation of PDU.

Join Test

iOS : https://testflight.apple.com/join/FqQGxhbn

What is PDU?

PDU is short for ParaDigi Universe, is a fully peer-to-peer (P2P) social network system designed to enable participants to freely publish and efficiently access information without relying on any third-party services. Traditional systems that do not use centralized verification methods, such as phone numbers, are vulnerable to Sybil attacks, where the cost-free creation of new accounts can overwhelm the network with spam, undermining reward and punishment mechanisms. PDU addresses this issue by establishing trusted publisher identities through a sequence of messages signed by the same private key. Interactions such as reposts, comments, and likes create associations between publishers, allowing participants to form a custom set of visible publisher identities. This relatively stable scope enables an identity-based reward and punishment mechanism to effectively filter information.

Please read the WhitePaper on https://pdu.pub for more details.

Usage

ParaDigi Universe
	A Peer-to-Peer Social Network Service
	Website: https://pdu.pub

Usage:
  pdu [flags]

Flags:
  -d, --dbName string    Database name (default "pdu.db")
  -h, --help             help for pdu
  -n, --nodeKey string   Node key (default "node.key")
  -p, --peerPort int     Port to listen for P2P connections (default 4001)
  -r, --rpcPort int      Port for the RPC server (default 8545)
  -t, --test             Run in test mode
  -w, --webPort int      Port for the web server (default 8546)

Development

To copy the repository:

get clone https://github.com/pdupub/go-pdu.git

To build:

make build 

Contributing

  1. Fork the repository on GitHub to start making your changes to the master branch
  2. Write a test which shows that the bug was fixed or that the feature works as expected
  3. Send a pull request and bug the maintainer until it gets merged and published