- Go 100%
Phase 1 cascade was incomplete — `/go/` source imports
`dappco.re/go/lns/internal/nameutil` and `dappco.re/go/lns/pkg/{chain,
covenant,dns,primitives,wallet}` but those dirs were still at the repo
root. Pure file move via `git mv`. Build clean, all 7 packages pass
tests.
|
||
|---|---|---|
| .core | ||
| docs | ||
| go | ||
| tests/cli/lns | ||
| .gitignore | ||
| .woodpecker.yml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| go.work | ||
| LICENCE | ||
| README.md | ||
| sonar-project.properties | ||
Lethean Name System for Go
This module is the native Go implementation of the Lethean Name System (LNS).
It provides name validation, name hashing, reserved and locked catalog lookup,
covenant helpers, DNS resource encoding, and a Core service wrapper that exposes
the same operations from the top-level dappco.re/go/lns package.
The package is intentionally self-contained. The JavaScript and HSD source trees
under docs/js-* are reference material for porting and compatibility checks;
runtime code should use the Go primitives in pkg/primitives, pkg/covenant,
and pkg/dns.
Quick Start
package main
import (
core "dappco.re/go"
"dappco.re/go/lns"
)
func main() {
app := core.New(core.WithService(lns.Register))
_ = app
hash, err := lns.ResolveString("example.lthn")
if err != nil {
panic(err)
}
core.Println(hash)
}
Packages
lns.go mirrors the public API for callers that want one import path. The
subpackages hold the implementation: pkg/covenant owns name rules and catalog
verification, pkg/dns owns DNS resource projection and live bridge helpers,
pkg/primitives owns serializable chain data structures, and pkg/wallet /
pkg/chain provide lightweight scaffolding for action handlers.
Validation
This repository is not included in the parent go.work, so run validation with
workspace mode disabled:
GOWORK=off go test ./...
For compliance work, also run the v0.9.0 audit script supplied by the core/go workspace.