GNUNET-NAMESTORE(1)
π gnunet-namestore β manipulate GNU Name System (GNS) zone data
okay so first things first: this is a page from the General Commands Manual, and it's all about gnunet-namestore, bestie. she manipulates GNS zone data and she does it well. let's get into it π
β¨ SYNOPSIS β¨
gnunet-namestore [-a | --add] [-c FILENAME | --config=FILENAME]
[-d | --delete] [-D | --display]
[-e TIME | --expiration=TIME] [-h | --help]
[-i NICKNAME | --nick=NICKNAME]
[-L LOGLEVEL | --loglevel=LOGLEVEL] [-m | --monitor]
[-n NAME | --name=NAME] [-O | --list-orphans]
[-o | --omit-private] [-P | --purge-orphans]
[-p | --public] [-s | --shadow] [-S | --from-stdin]
[-T | --include-maintenance] [-t TYPE | --type=TYPE]
[-u URI | --uri=URI] [-v | --version]
[-V VALUE | --value=VALUE] [-X | --purge-zone-records]
[-B | --batch-size] [-z EGO | --zone=EGO]
[-Z KEY | --zone-to-name=KEY]
no cap, that's a lot of brackets. but honestly? every single one is pulling its weight π«Ά
πΈ DESCRIPTION πΈ
gnunet-namestore is literally your little zone-manipulation bestie β you use it to work with records in a GNS zone.
the options are as follows (yes, all of them, we're doing this π ):
-a,--addβ the desired operation is adding a record. slay.-c FILENAME,--config=FILENAMEβ use the configuration file FILENAME. that's it, that's the vibe.-d,--deleteβ the desired operation is deleting records under the given name that match the specified type (-t) and value (-V).
okay so heads up: if type or value are not specified, it means all types (or all values) should be assumed to match β and possibly multiple or all values under the given label will get deleted. π so like, be careful.
Specifying a label (-n) is mandatory. also, matching by expiration time or flags is (currently) not supported. periodt.
-D,--displayβ the desired operation is listing of matching records. the chill option fr fr.-e TIME,--expiration=TIMEβ specifies the expiration time of the record to add. the format is relative time, i.e."1 h"or"7 d 30 m". supported units are"ms","s","min"or"minutes","h"(hours),"d"(days) and"a"(years). iconic unit lineup honestly π¦-h,--helpβ print short help on options. your safe space.-i NICKNAME,--nick=NICKNAMEβ set the desired NICKNAME for the zone. the nickname will be included in all (public) records and used as the suggested name for this zone. main character energy for real π-L LOGLEVEL,--loglevel=LOGLEVELβ use LOGLEVEL for logging. valid values areDEBUG,INFO,WARNINGandERROR. pick your fighter.-m,--monitorβ monitor changes to the zone on an ongoing basis. this is in contrast to-D, which merely displays the current records. like,-Dis a screenshot and-mis a livestream πΉ-n NAME,--name=NAMEβ label or name of the record to add/delete/display.-O,--list-orphansβ list orphaned records. them poor little guys π₯Ί-o,--omit-privateβ filter private records. use in combination with--display.-P,--purge-orphansβ delete orphaned records from namestore. bye bestie π-p,--publicβ create a record that is public (shared with other users that know the label).-r,--recordlineβ changes the output format of zones and records to recordline.-s,--shadowβ create a record that is a shadow record. shadow records are only used once all other records of the same type under the same label have expired. she waits her turn, quietly, in the wings π§-S,--from-stdinβ read recordlines from stdin untilEOFis encountered. the format uses: a record in a recordline follows the format
NAME.EGO:
TYPE EXPIRATION [FLAGS] VALUE
... Multiple records may be provided for a name.
EXPIRATION is given in microseconds without a unit (e.g. 3600000000 for 3600 seconds).
FLAGS is a concatenation of record flags. possible values for flags and their meaning are:
p: Publics: ShadowS: SupplementalC: Criticalr: Relative expiration
TYPE and VALUE are used in the same way as for the "-t" and "-V" options. example formats for recordlines can be output using the "-D" flag combined with --recordline. an example record set in recordline format can be found in the examples. it is possible to specify multiple record sets. can only be used in combination with "-a" to add the parsed record sets. existing record sets under names will be replaced β so like, no merge, it's a full glow-up swap π₯
-T,--include-maintenanceβ show maintenance records such as TOMBSTONEs. use in combination with--display. spooky but necessary β-t TYPE,--type=TYPEβ type of the record to add/delete/display ("A";"AAAA";"NS";"PKEY";"MX"; etc.). etc. really out here carrying the whole list π-u URI,--uri=URIβ add PKEY record fromgnunet://gns/-URIto our zone; the record type is always PKEY, and if no expiration is givenFOREVERis used. forever forever? forever forever. π-v,--versionβ print GNUnet version number.-V VALUE,--value=VALUEβ value to store or remove from the GNS zone. the specific format depends on the record type:Arecords expect a dotted decimal IPv4 address,AAAArecords an IPv6 address,PKEYa public key in GNUnet's printable format, andCNAMEandNSrecords should be a domain name. so like, read the room and match the format, bestie π¦-X,--purge-zone-recordsβ delete all records in a zone. nuclear option. she ate and left no crumbs π-B,--batch-sizeβ number of records to buffer and send in a batch to the service. for use with--from-stdin.-z EGO,--zone=EGOβ specifies the name of the ego controlling the private key for the zone. if not provided, we will attempt to use the default identity set for the"namestore". alternatively, a private key may be passed in Base32-encoding using theGNUNET_NAMESTORE_EGO_PRIVATE_KEYenvironment variable. the latter is useful to improve performance of tools like Ascension as it allows the command to skip IPC with the identity management subsystem. lowkey a flex ngl β¨-Z KEY,--zone-to-name=KEYβ determine our GNS name for the given public key (reverse lookup of the KEY) in the given zone. detective mode π
π EXAMPLES π
gnunet-namestore -z example -a -n www -t A -V "1.2.3.4" -e 1d -p
Add a public record for ego example with name www containing an IP address.
gnunet-namestore -z example -D
Show all records for ego example.
gnunet-namestore -z example -D -r
Show all records for ego example in recordline format.
gnunet-namestore --add --from-stdin <<EOF
www.alice:
A 3600000000 [pr] 1.2.3.4
TXT 3600000001 [pr] Hello World
www.bob:
A 12345679000000 [pr] 4.3.2.1
EOF
Read record sets in recordline format from stdin.
π SEE ALSO π
gnunet-gns(1), gnunet-namestore-gtk(1)
the full documentation for GNUnet is maintained as a Texinfo manual. if the info(1) and gnunet programs are properly installed at your site, the command
info gnunet
should give you access to the complete handbook,
info gnunet-c-tutorial
will give you access to a tutorial for developers.
depending on your installation, this information is also available in gnunet(7) and gnunet-c-tutorial(7). iykyk π«Ά
π BUGS π
report bugs by using https://bugs.gnunet.org or by sending electronic mail to β¨gnunet-developers@gnu.orgβ©. they're lovely, they'll listen π
and that's the whole page, bestie β¨ this one's from the Debian edition of the manual, dated April 15, 2014, filed under GNUNET-NAMESTORE(1). go forth and manipulate those zones π
ππ¦
π¦ where this page comes from
- alpine 3.24: gnunet-doc 0.27.0-r0 Β· AGPL-3.0-only
- nixos 26.05: gnunet 0.26.2
- nixpkgs unstable: gnunet 0.26.2
- opensuse-leap 16.0: gnunet 0.23.1-bp160.1.18 Β· AGPL-3.0-or-later
- opensuse-leap 16.0: gnunet 0.23.1-bp160.1.18 Β· AGPL-3.0-or-later
- opensuse-leap 16.0: gnunet 0.23.1-bp160.1.18 Β· AGPL-3.0-or-later
- opensuse-leap 16.0: gnunet 0.23.1-bp160.1.18 Β· AGPL-3.0-or-later
- π the page's license: GPL3.0-or-later OR FDL1.3-or-later
- Copyright (C) 2001-2022 GNUnet e.V
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms