Main
News
Proposal
Readings
Download
Backbone
License
Donate
Feedback
Here you can leave a comment for the site's owner regarding the site's content, appearance, functioning and, generally, write whatever you think on this. Please stay on topic (“on this” doesn't mean “on anything”) and respect the others.
Please note you can also contact the site's owner using the feedback page.
Please note that premoderation is in effect here.
From Anon (unverified) Sat Apr 4 17:41:49 2026 UTC
Trying to set Proxy user as introducer
The issue is following. I want to set my machine at home to be introducer for my node running on VPS. I have following peers specified on Node:
peer home
type nodenets trustncc persist certhub introducer proxyuser
node_id aeaff9d413d984527a88
point 1
proxyport 22222
peer vetal
type persist
ip 107.174.224.199
port 65242
node_id f226cb6a4412d7faa2c1
point 254
I then start my Node on VPS, then start my peer at home. But until I managed to launch my peer at home, my node already tried to establish association with vetal peer and failed with `alas, we have nobody to ask`. Then adding this peer to state `gave_up` and not trying to establish association with it after my proxy user finally connects.
Is this configuration valid, or I cannot make my point behind NAT as introducer?
reply
From Andrey Stolyarov
Sat Apr 4 19:36:07 2026 UTC
in reply to
this comment
Re: Trying to set Proxy user as introducer
First, one thing unrelated to your question.
> type nodenets trustncc persist certhub introducer proxyuser
This node entry should not have the
certhubtoken. This token means the daemon will offer this peer to remotes who tries to contact you but you don't know their node creds. They won't be able to connect the peer because the peer is behind the NAT.To fix this, add another peer entry, like this:
Now about your situation:
> my node already tried to establish association with vetal peer and failed with `alas, we have nobody to ask`. Then adding this peer to state `gave_up`
This is definitely a problem, and I'll think how to fix this. Meanwhile, what you can do now: add vetal as the peer for your home fedaserv instance. The instance (your peer number 1) will first establish its connection with the proxy, then will contact vetal, and will request and check its cert. Once you have it, it will reside in the file named
~/.fedanet/keys/f22/6cb/f226cb6a4412d7faa2c1/node; take this file and copy it to your node, with exactly the same local path (relative to the home dir of the daemon). And restart the node.I realize this is not too convenient way to go, and I hope this recommendation won't remain in effect for long, but right now this allows to go on.
reply
From Anon (unverified) Sun Apr 5 10:30:12 2026 UTC in reply to this comment
Re: Re: Trying to set Proxy user as introducer
Is this really required to copy this key to Node? I suppose Node will just ask home peer (as trustncc) if it knows this vetal node, when someone from their node tries to assosiate with my Node.
reply
From Andrey Stolyarov
Sun Apr 5 11:10:59 2026 UTC
in reply to
this comment
Re: Re: Re: Trying to set Proxy user as introducer
> when someone from their node tries to assosiate with my Node.
Sure this will happen, but only in case the remote node will eventually contact your node. So, in case not only you configure your node to connect the remote one, but the remote node's master (or an owner of any of its points) also configures the daemon to connect your node, then everything will be fine. This was a common case for long. However, this can't be such common once we establish a kind of backbone, and a lot of nodes not being a part of the backbone try to connect the backbone.
Well, actually I hope I fixed the problem in the version 0.0.59.
reply
From Koshelkov Pjotr (unverified) Wed Apr 1 23:40:39 2026 UTC
New persist node
Yeeah, it's almost 3 am, but I finished it. I created a new node for the backbone. I hope I configured everything correctly.
One thing is that I couldn't introduce myself to
f226_cewhich is inaccessible for me at all.Do I need to send some more information about the node?
reply
From Andrey Stolyarov
Thu Apr 2 09:59:59 2026 UTC
in reply to
this comment
Re: New persist node
Thank you, I listed your node at the backbone info page. Also I added it to my nodes' configs,
c50809established the association right off, butf22ff5tried and failed. I guess your node doesn't use the known public certhubs astrustncctype peers so it can't get my node's creds, and you don't have any points capable of taking hashes so that your node can't let incoming strangers to introduce themselves.reply
From Koshelkov Pjotr (unverified) Thu Apr 2 18:36:05 2026 UTC in reply to this comment
Re: Re: New persist node
I set an introducer on my home machine already yesterday. Today I added known certhubs to serv.conf, and it successfully introduced the node to f226_ce. What else do I need to check?
fedaserv on my node still writes
failed decrypting association request from 172.245.129.210:65242, which is f22ff5 as I can see, each 10 seconds.reply
From Andrey Stolyarov
Thu Apr 2 19:04:09 2026 UTC
in reply to
this comment
Re: Re: Re: New persist node
> What else do I need to check?
Well, what I've just seen in the logs:
This means (well, should mean, if everything works as expected) that these three peers are set as
certhubs on your node, right? The problem is that at least two of them (I'm not sure about the third) already know my node. This means you don't list any of them astrustnccs, so your node does not ask them if they know my node and wouldn't trust their information regarding my node.Definitely you are not required to trust them, and anyone at all. If this is the case for you, perhaps you should run your own certhub (not necessarily a public one, but a machine that accepts node introductions), and list it as the trustncc peer. In this case, BTW, if your own certhub works through FEDAproxy provided by your node, then on your node there must be two distinct point records for it: one lists it as the proxy user and the trusted node collections (trustncc), perhaps using the node.point pair for identification, and the second peer record is solely to let your node notify incoming strangers they should introduce to this machine not to any other certhubs, this peer record must list the publicly visible addr:port pair (perhaps the port made by the proxy) and only specify the certhub peer type for it. Such a peer rec will be used solely as the address to suggest to strangers to introduce to.
reply
From Koshelkov Pjotr (unverified) Thu Apr 2 19:16:46 2026 UTC in reply to this comment
Re: Re: Re: Re: New persist node
All certhubs are marked as trustncc's because I simply copied the list from backbone info page.
But my node recieved an echo request from 172.245.129.210:65242, then something happened, and the assotiation with croconet2 was established. Is it a success?
reply
From Andrey Stolyarov
Thu Apr 2 20:53:42 2026 UTC
in reply to
this comment
Re: New persist node
Well, yes, my node shows the association is established, so it is the success. Perhaps there's still a problem in the protocol implementation.
Just if you're courious, echo request/reply are the first stage of the handshake, they contain temporary key exchange public keys (and some other information as well). See the doc/protocol.txt file for details.
reply
From anon (unverified) Tue Mar 31 20:51:55 2026 UTC
Point Certificate Revocation
It is said in the proposal, that revocation happens when a new certificate is issued, but what happens with the old one? Does it get added to some kind of black list when point sees the new one? If not, it seems like a security problem to me.
reply
From Andrey Stolyarov
Wed Apr 1 09:08:43 2026 UTC
in reply to
this comment
Re: Point Certificate Revocation
No there is no such black list. If you think you're able to distribute a black list, what prevents you from distributing the newer point cert? There is no central authority in the network, so there effectively can not be any kind of list of revoked certs.
reply
From anon (unverified) Wed Apr 1 17:41:04 2026 UTC in reply to this comment
Re: Re: Point Certificate Revocation
> to distribute a black list
Thats not what I meant. The point, upon seeing the new cert, can mark the old one (potentially compromised) as untrusted for itself only, otherwise, it would still be valid because it is still signed by the node/zeropoint key, no?
reply
From Andrey Stolyarov
Wed Apr 1 22:48:58 2026 UTC
in reply to
this comment
Re: Re: Re: Point Certificate Revocation
> The point, upon seeing the new cert,
The point, upon seeing the new cert, replaces the file which stores the cert, with the new one. The old cert is saved in a file under a different name (well, actually the old file gets renamed, then the new one is written under the original name). Files storing old certs currently never get read, they are stored just in case (well, I prefer to see them for debugging purposes).
reply
From Igor (unverified) Fri Mar 27 05:04:01 2026 UTC
Not compiles on FreeBSD
Good day, Andrey Viktorovich! I'm try to start node of fedaserv on my FreeBSD VPS, and it fail on make stage with unknown errors. I'm not very familiar with make/gcc/llvm and hope maybe you help with that. There is an error:
/home/userx/fedanet-0.0.51 # make cd src && make make[1]: /usr/home/userx/fedanet-0.0.51/src/Makefile:108: warning: Invalid character " " in variable name "wildcard *.c" make[1]: /usr/home/userx/fedanet-0.0.51/src/Makefile:114: Invalid line "ifneq (clean, $(MAKECMDGOALS))", expanded to "ifneq " in make[1] in directory "/usr/home/userx/fedanet-0.0.51/src" make[1]: /usr/home/userx/fedanet-0.0.51/src/Makefile:116: Invalid line "endif" in make[1] in directory "/usr/home/userx/fedanet-0.0.51/src" make[1]: Fatal errors encountered -- cannot continue make[1]: stopped making "all" in /usr/home/userx/fedanet-0.0.51/src *** Error code 1 Stop. make: stopped making "default" in /usr/home/userx/fedanet-0.0.51 :/home/userx/fedanet-0.0.51 # cc -v FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2) Target: x86_64-unknown-freebsd14.4 Thread model: posix InstalledDir: /usr/bin :/home/userx/fedanet-0.0.51 # uname -a FreeBSD 14.4-STABLE FreeBSD 14.4-STABLE stable/14-5f55c59cbab5 MY amd64reply
From Andrey Stolyarov
Fri Mar 27 09:33:09 2026 UTC
in reply to
this comment
Re: Not compiles on FreeBSD
This error is not related to the compiler's version nor to the host system. It is
makewho fails.Makefiles are written for GNU make, it is named
gmakein BSD-like systems. As far as I see, it is impossible to write makefiles so that they are suitable both for GNU make and POSIX make, which is the defaultmakein BSDs. Actually, I don't have the knowledge to write POSIX-make makefiles even from scratch. It may be a good idea to write them, so that BSD users don't have to installgmake, but, well, right now this can't be a top priority.reply
From curious patient digger (unverified) Sat Mar 7 13:18:22 2026 UTC
My current "FEDAnet Questions Short List" ...
I'm digging for a while now with a not so beefy system and already got a surprising amount of nicely rated keys.
Questions in maybe not so random order:
reply
From Andrey Stolyarov
Sat Mar 7 18:23:27 2026 UTC
in reply to
this comment
Re: My current "FEDAnet Questions Short List" ...
> Is "playing tunnels" currently the only way servers work?
I'm a bit confused with the question. What the current version of
fedaservcan do is not limited by these tunnels, they can at least serve NAT checking requests (here plz). But, well, yes, right now no more useful things are implemented. Fedaserv instances are capable of serving as proxy servers to other instances, and they are capable of using service of this kind, but perhaps that's all.> Have I misread it when I think these tunnels need a constant public IP address and domain name?
Domain names are not used by
fedaservin any way, so you don't need a domain name. As of the public IP address, well, yes, that's now the case and it will remain so until we have broadcast message exchange/distribution. Once the message distribution is implemented, nodes will be able to tell all the network where they are, so changing the IP address of a single node will no longer be a problem.Also please note a single VPS or other machine with a permanent IP address can serve as many nodes as you wish, even with a single instance of
fedaserv, thanks to that fedaproxy functionality, which is already there. There's also no problem to run severalfedaservs on a single machine, they only need to have different UDP ports. User access to such a machine is sufficient to run a node there, that is, root access is not necessary.> At home my address is constant typically for months, but it might change on every provider-plastic-router reboot. Those events typically come in clusters, and the long and stable phases between them are the rule. Will that be good enough for using FEDAnet in its final "mode"?
Absolutely. This doesn't work right now only because we don't (yet) have the message distribiution facility. Definitely it will be implemented one day.
When? Well, I don't know. Right now I'm working on the node cert exchange automation, so that new node masters will be able to join the network without human intervention of the people already there. This, in turn, will let us build up a kind of network backbone, which will later pass those messages. Once I'm done with the node cert exhange, I'm going to focus on the message passing.
> I'll probably never get a VPS again.
May be you can get a non-privileged (user) access to someone else's VPS? It is sufficient for FEDAnet even in its present state.
> and then I tried to compress the tables built so far ...
Well, they won't compress. The table file consists of 64-byte records, and each record has 32 bytes of the challenge (it is actually a public key of a random secret key which you're not going to use) and 32 bytes of the response (it is the yespower hash of the challenge). Data of this kind looks random, so no compression is possible.
reply
From SmallBrain (unverified) Mon Jan 26 10:54:35 2026 UTC
Q About node launching.
While FEDAProxy is not ready, what can I use to run a node on my home local network accessible via IP VPS? OpenVPN and WireGuard do not work. ssh -R does not allow udp. I do not want to run the node directly on a remote VPS. I don't know.
reply
From Andrey Stolyarov
Mon Jan 26 12:04:01 2026 UTC
in reply to
this comment
Re: Q About node launching.
If usual VPN software doesn't work for you, perhaps it means your VPS doesn't support tun/tap interfaces, which is typical for older VPSes. Unfortunately, I never saw a tool to forward UDP ports, like ssh does for TCP, despite such software solution is obviously possible.
However, there's (right now) no real reason not to run a node (that is, fedaserv instance with point number 254 a.k.a. 0xfe) on a VPS. Just keep your node master key private (preferably on cold media such as USB flash sticks), and keep the ZeroPoint key on your home machine. The keys for the point254 may be regenerated at any moment, as well as the ZeroPoint key (regeneration of the ZeroPoint invalidates all other points signed with the ZP's key, so this may take a lot of work; regeneration of the point254 requires nothing, and may be done with the ZeroPoint key, not involving the master keys).
On later stages of the project, there will be some (weak!) reasons to run the node instance at home instead of the VPS, but definitely not now.
reply
From Parthen (unverified) Mon Dec 15 21:36:10 2025 UTC
Possible corruption of last release
Release 0.0.30 extracts normally. I tried to re-download file a couple of times in case of network issues, but the problem persists.
reply
From Andrey Stolyarov
Tue Dec 16 16:14:07 2025 UTC
in reply to
this comment
Re: Possible corruption of last release
Right on the server machine, with the archive file physically used by the Apache server to respond to the respective requests:
Please check both the size and the hash of the copy you have, it is perhaps broken.
reply
From anonymous (unverified) Fri Nov 14 20:21:56 2025 UTC
Side effect inside sue library used by FEDAnet project
As far as I know, you're against side effects in conditional expressions, but I found them in your code. See
lib/sue/sue_sigs.c, line 51.void sue_signals_remove(int signo) { if(signo < 1 || signo > _NSIG) return; if(--sighdl_count[signo-1] == 0) { /* remove the handler, restore the saved disposition */ sigaction(signo, saved_sigactions + (signo-1), NULL); } }reply
From Andrey Stolyarov
Sat Nov 15 12:02:07 2025 UTC
in reply to
this comment
Re: Side effect inside sue library used by FEDAnet project
Yeah, I'll fix it, thanks. The code of the plain C version of SUE is now pretty old, it was initilally written for a completely different project which never continued. So this piece appeared earlier than I finally realized how the C-like languages poison one's brain.
reply
From Anonymous (unverified) Sat Sep 20 11:16:32 2025 UTC
gpg signing
Is there a plan to sign source code releases with gpg?
reply
From Andrey Stolyarov
Sat Sep 20 14:14:38 2025 UTC
in reply to
this comment
Re: gpg signing
No.
reply
From anon (unverified) Tue Sep 9 07:32:08 2025 UTC
docs
maybe create a separate docs/ directory for those consumable files?
reply
From Andrey Stolyarov
Tue Sep 9 14:40:08 2025 UTC
in reply to
this comment
Re: docs
Errrr... consumable files?! 8-()
I'll think about the directory though, earlier or later it has to appear.
reply
From Anonymous (unverified) Fri Jun 27 23:57:07 2025 UTC
Typo
In feda.croco.net/proposal.html:
> witout your notice
reply
From Andrey Stolyarov
Sat Jun 28 10:26:39 2025 UTC
in reply to
this comment
Re: Typo
Thanks, fixed
reply
From andry0980 (unverified) Mon Jun 16 03:24:30 2025 UTC
Other outdated text
Other outdated text since 0.0.03 on the proposal page:
... A program to test the type of your connectivity is expected to be published soon.
reply
From andry0980 (unverified) Sat Jun 14 22:31:10 2025 UTC
Outdated text
Maybe it's time to change this text on the main page:
> A program that checks your connectivity conditions (the NAT type) is coming soon, watch the news.
?
reply
From Andrey Stolyarov
Sun Jun 15 09:31:01 2025 UTC
in reply to
this comment
Re: Outdated text
Thanks :-)
reply
From Anonymous (unverified) Sun Feb 2 12:55:23 2025 UTC
Couple Questions
1) Why is there no proper directory structure of the source files?
2) Why didn't you license this project with your Croco's Individualistic Free Software License?
reply
From Andrey Stolyarov
Sun Feb 2 17:33:11 2025 UTC
in reply to
this comment
Re: Couple Questions
1) The archive published on this site is not, strictly speaking, the source, it is rather a subset of source files selected so that building the feda-ng and feda-ct binaries is possible. The Makefile is generated, and to simplify the things a bit, I decided to put everything in a single directory. Definitely once the real sources get published, there will be at least a separate directory for the libraries.
2) In the present state of the project, I don't want all this mess to be distributed anyhow. I plan to apply the license (yes, this one) to the first "real" release.
reply
From Anonymous (unverified) Thu Nov 21 12:35:09 2024 UTC
Typo in http://feda.croco.net/master_key_gen.html
>but chances are it will work on other unices as well.
It's supposed to be "unixes", I guess.
reply
From Andrey Stolyarov
Thu Nov 21 14:36:02 2024 UTC
in reply to
this comment
Re: Typo in http://feda.croco.net/master_key_gen.html
No, it isn't.
reply
From Parthen
Wed Nov 20 13:52:21 2024 UTC
Typo
In README of feda-ng:
>Just run te feda-ng program with an additional parameter -t, like
It's supposed to be "the feda-ng", I guess.
reply
From Andrey Stolyarov
Wed Nov 20 16:00:29 2024 UTC
in reply to
this comment
Re: Typo
Thanks! I'll fix it in the next release.
reply