roughtime

package module
v0.0.0-...-2814185 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: Apache-2.0 Imports: 1 Imported by: 13

README

Roughtime

A fork of Google's Roughtime protocol and utilities for building Roughtime clients. This repository also implements the IETF version.

For more information about Roughtime and tips for writing your own client or server, visit the developer documentation.

Note on status

This repository currently supports draft-ietf-ntp-roughtime-08. Backwards compatibility with this version is not guaranteed; users should expect breaking changes as the IETF process continues. Likewise, the API should be regarded as unstable.

If you want to use this code and the protocol please join the NTP WG mailing list so that you are aware of the evolution of the protocol and issues that others discover.

** DO NOT USE IN PRODUCTION SOFTWARE **

Ecosystem guidelines

We welcome pull requests for adding your Roughtime service to our list. Your PR should do the following:

  • Add your server's configuration to ecosystem.json. The list of servers will be alphabetized by the "name" field.

  • Add some information about your service to ecosystem.md. (This is also kept in alphabetical order.) This should include details about how your service is provisioned:

    1. how you synchronize your server's clock;
    2. if your code is open source, a link to the code;
    3. where in the world your server is located; and
    4. whether you will guarantee up time, and if so, how you will do so.
    5. what version you run
  • Generate the ecosystem.json.go from the ecosystem.json. Use the go generate command for this.

A couple things to keep in mind:

  • To be healthy, the Roughtime ecosystem needs a diverse set of time sources. The list already contains servers that are synced with Google's NTP servers; as such, servers that expose new sources will be preferred. (An atomic clock would be cool!)

  • We reserve the right to prune this list at any time. (For example, if a server is unreliable, or its root secret key has been compromised.)

  • As new versions come out we may prune servers that do not update.

Finally, a disclaimer: the ecosystem is growing, and ours might not be the definitive list of who is serving Roughtime at any given time.

Contributing

We welcome your bug fixes, issues, and improvements to either the protocol or this code. Note that substantive changes to the protocol need to be discussed on the NTP WG mailing list.

Documentation

Overview

Code generated by "ecosystem_json_go_builder". DO NOT EDIT. source: ecosystem.json

Index

Constants

This section is empty.

Variables

View Source
var Ecosystem = []config.Server{
	{
		Name:          "Cloudflare-Roughtime-2",
		Version:       "IETF-Roughtime",
		PublicKeyType: "ed25519",
		PublicKey:     []byte{208, 96, 251, 115, 124, 143, 243, 17, 28, 225, 153, 118, 205, 235, 141, 217, 41, 75, 188, 53, 85, 161, 200, 236, 61, 34, 252, 253, 25, 127, 239, 56},
		Addresses: []config.ServerAddress{
			{
				Protocol: "udp",
				Address:  "roughtime.cloudflare.com:2003",
			},
		},
	},
	{
		Name:          "int08h-Roughtime",
		Version:       "Google-Roughtime",
		PublicKeyType: "ed25519",
		PublicKey:     []byte{1, 110, 110, 2, 132, 210, 76, 55, 198, 228, 215, 216, 213, 180, 225, 211, 193, 148, 156, 234, 165, 69, 191, 135, 86, 22, 201, 220, 224, 201, 190, 193},
		Addresses: []config.ServerAddress{
			{
				Protocol: "udp",
				Address:  "roughtime.int08h.com:2002",
			},
		},
	},
	{
		Name:          "time.txryan.com",
		Version:       "Google-Roughtime",
		PublicKeyType: "ed25519",
		PublicKey:     []byte{136, 21, 99, 198, 15, 245, 143, 188, 181, 250, 68, 20, 76, 22, 29, 77, 166, 241, 10, 154, 94, 177, 79, 244, 236, 62, 15, 48, 50, 100, 217, 96},
		Addresses: []config.ServerAddress{
			{
				Protocol: "udp",
				Address:  "time.txryan.com:2002",
			},
		},
	},
}

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
This package defines some functionalities useful for building Roughtime clients.
This package defines some functionalities useful for building Roughtime clients.
cmd
getroughtime
A simple Roughtime client.
A simple Roughtime client.
testserver
A simple Roughtime server, intended for testing.
A simple Roughtime server, intended for testing.
Package config contains JSON structs for encoding information about Roughtime servers.
Package config contains JSON structs for encoding information about Roughtime servers.
internal
ecosystem_json_go_builder
This package defines some functionalities useful for building Roughtime clients.
This package defines some functionalities useful for building Roughtime clients.
Package protocol implements the core of the Roughtime protocol.
Package protocol implements the core of the Roughtime protocol.
internal/cmd
Generate test vectors consumed by the unit tests for the protocol package.
Generate test vectors consumed by the unit tests for the protocol package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL