starting on the Great Documentation Fixup...

This commit is contained in:
l0k18
2023-07-01 20:41:49 +01:00
parent cb4bea6e67
commit 88d5987612
12 changed files with 82 additions and 43 deletions

View File

@@ -20,7 +20,7 @@ First Amendment, by literally printing the source code on paper and then
posting it, it became recognised that code, and encryption, are protected
speech.
With ubiquitous 128 and 256 bit AES encryption now in use by default, the
With ubiquitous 128 and 256-bit AES encryption now in use by default, the
content of messages is secure. However, the volume of messages and endpoints of
signals are still useful intelligence data, enabling state level actors to
attack internet users and violate their privacy and threaten their safety.
@@ -30,12 +30,20 @@ this work is the [Tor network](https://torproject.org). However, this system
has many flaws, and in recent times its centralised relay registry has come
under sustained attack by DDoS (distributed denial of service) attacks.
One of the big problems that with this network is its weak network
More specifically, the protocol has a severe bottleneck in its rendezvous model for linking two outbound 3 hop connections, attackers flood these with requests, and legitimate users cannot get a word in edgewise. Ironically they built a proof of work protocol to give users a way to get ahead of the spammers.
Indra eliminates this problem by using a constantly changing set of introducers and the actual bidirectional anonymity is done by the parties themselves via the source routing headers plus pairs of hops added in front of the recipient's routing header.
One of the big problems of the Tor network is its weak network
effect. There is no incentive for anyone to run nodes on the network, and
worse, the most common use case is tunneling back out of the network to
anonymize location, is largely abused and led to a lot of automated block
systems arising on many internet services to prevent this abuse.
Indra makes it possible for anyone to offer this kind of outbound relaying service if they want to, but with compensation for doing so, which covers the risk they take as being the visible origin point of shady traffic from time to time.
Indra uses source routing, similar to the Lightning Network and an early but not really quite viable mixnet design called HORNET. The problem with source routed mixnets is that they are very vulnerable to spam. Indra eliminates this problem by no traffic being relayed without first paying a small forward payment to relays for this traffic, thus creating an economic disincentive for spam if the profit is below the routing fees.
# fin
notes:

View File

@@ -1,11 +1,12 @@
// Package main is a tool for creating version information to be placed at the
// repository root of a project.
// Bumper is a tool for creating version information to be placed at the repository root of a project.
//
// It provides basic release information, references the parent Git commit hash,
// automatically increments the minor version, tags the commit with the version
// so that it is easy for importing projects to use a Semantic Versioning
// version code instead of depending on automatic generated codes from Go's
// module system.
// It provides basic release information, references the parent Git commit hash, automatically increments the minor version, tags the commit with the version so that it is easy for importing projects to use a Semantic Versioning version code instead of depending on automatic generated codes from Go's module system.
//
// If 'minor' or 'major' are the first space-separated command line parameter, it bumps the respective number instead of the patch version.
//
// To indicate a line break, to make 72 column commit comments with additional lines, use '--' and it and the surrounding spaces are converted to a double line break/carriage return, inserting an empty line, effectively.
//
// todo: maybe even better, just have it automatically break the thing at the last whole word before 72?
package main
import (
@@ -43,16 +44,17 @@ func errPrintln(a ...interface{}) {
}
func main() {
log2.App.Store("bumper")
if len(os.Args) < 2 {
log.E.Ln("arguments required in order to bump and push this repo")
log.E.Ln("at least one argument is required in order to bump and push this repo")
os.Exit(1)
}
var minor, major bool
if os.Args[1] == "minor" {
switch {
case os.Args[1] == "minor":
minor = true
os.Args = append(os.Args[0:1], os.Args[2:]...)
}
if os.Args[1] == "major" {
case os.Args[1] == "major":
major = true
os.Args = append(os.Args[0:1], os.Args[2:]...)
}
@@ -182,20 +184,20 @@ func main() {
name := filepath.Base(dir)
versionFile := `//go:build !local
// This can be overridden by a developer's version by setting the tag local
// on a modified version. This is useful for the code locations in teh logs.
package ` + name + `
import "fmt"
// Put invocations to run all the generators in here (
// check cmd/bumper/ to add them, and they will automatically run with:
// Package indra is the root of the repository for the Indra distributed VPN, containing mainly the version information for included executables to use for information and identification on the network.
//
// See [pkg/github.com/indra-labs/indra/cmd/indra] for the main server executable.
//
// Put invocations to run all the generators in here check [pkg/github.com/indra-labs/indra/cmd/bumper] to add them, and they will automatically run with:
//
// $ go generate .
//
// which will run all these generators below and finish with a go install.
` + `//go:generate go install ./...
//
//` + `go:generate go install ./...
package ` + name + `
import "fmt"
const (
// URL is the git URL for the repository.

2
cmd/docker/doc.go Normal file
View File

@@ -0,0 +1,2 @@
// Package docker contains tools for Docker deployments of Indra and components.
package docker

View File

@@ -1,8 +1,8 @@
package main
import (
"github.com/indra-labs/indra/pkg/docker"
"github.com/docker/docker/api/types"
"github.com/indra-labs/indra/pkg/docker"
)
var (

View File

@@ -1,3 +1,6 @@
// Package release is a tool to create and publish docker images.
//
// Currently only has the LND build implemented.
package main
import (

View File

@@ -1,8 +1,8 @@
package main
import (
"github.com/indra-labs/indra/pkg/docker"
"github.com/docker/docker/api/types"
"github.com/indra-labs/indra/pkg/docker"
)
var (

19
cmd/indra/gui/gui.go Normal file
View File

@@ -0,0 +1,19 @@
package client
import (
"github.com/spf13/cobra"
)
func Init(c *cobra.Command) {
c.AddCommand(clientCommand)
}
var clientCommand = &cobra.Command{
Use: "client",
Short: "run a client",
Long: "Runs indra as a client, providing a wireguard tunnel and socks5 " +
"proxy as connectivity options",
Run: func(cmd *cobra.Command, args []string) {
},
}

View File

@@ -1,3 +1,6 @@
// Indra is a low latency, source routed mixnet distributed virtual private network protocol.
//
// This application includes a client, client GUI, relay and seed node according to the subcommand invocation.
package main
import (

View File

@@ -1,3 +1,4 @@
// Package client is a client for the seed RPC service for remote unlock and management.
package client
import (

View File

@@ -1,3 +1,4 @@
// Package seed is a non-relay node that simply accepts and propagates peer advertisment gossip to clients and relays on the network.
package seed
import (

View File

@@ -1,19 +1,19 @@
//go:build local
// This can be overridden by a developer's version by setting the tag local
// on a modified version. This is useful for the code locations in teh logs.
package indra
import "fmt"
// Put invocations to run all the generators in here (
// check cmd/bumper/ to add them, and they will automatically run with:
// Package indra is the root of the repository for the Indra distributed VPN, containing mainly the version information for included executables to use for information and identification on the network.
//
// See [pkg/github.com/indra-labs/indra/cmd/indra] for the main server executable.
//
// Put invocations to run all the generators in here check [pkg/github.com/indra-labs/indra/cmd/bumper] to add them, and they will automatically run with:
//
// $ go generate .
//
// which will run all these generators below and finish with a go install.
//
//go:generate go install ./...
package indra
import "fmt"
const (
// URL is the git URL for the repository.

View File

@@ -1,19 +1,19 @@
//go:build !local
// This can be overridden by a developer's version by setting the tag local
// on a modified version. This is useful for the code locations in teh logs.
package indra
import "fmt"
// Put invocations to run all the generators in here (
// check cmd/bumper/ to add them, and they will automatically run with:
// Package indra is the root of the repository for the Indra distributed VPN, containing mainly the version information for included executables to use for information and identification on the network.
//
// See [pkg/github.com/indra-labs/indra/cmd/indra] for the main server executable.
//
// Put invocations to run all the generators in here check [pkg/github.com/indra-labs/indra/cmd/bumper] to add them, and they will automatically run with:
//
// $ go generate .
//
// which will run all these generators below and finish with a go install.
//
//go:generate go install ./...
package indra
import "fmt"
const (
// URL is the git URL for the repository.