Opened 4 years ago

Closed 4 years ago

#16167 closed enhancement (invalid)

[Kernel Kit] Provide a mechanism to generate a unique identifier akin to "/etc/machine-id"

Reported by: CodeforEvolution Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Kits/Kernel Kit Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

I'm currently working on fixing up support for Haiku in the Godot game engine, and noticed that there is a function called "get_unique_id" which requires the operating system to return an identifier unique to the machine for online multiplayer support. Apparently, in BeOS, there was an "id" member in the system_info struct, but this was either never implemented in Haiku, or was removed at some point from our system_info struct: https://www.haiku-os.org/legacy-docs/bebook/TheKernelKit_SystemInfo.html

In addition, Haiku should most likely provide a mechanism to get an encrypted machine specific identifier. According to Freedesktop's website: "https://www.freedesktop.org/software/systemd/man/machine-id.html", one should normally only use a machine's unique identifier in a "secure context" and especially not in a network environment. Instead, it claims that one should have a separate encrypted version of the machine id for these unsecure use cases.

Change History (2)

comment:1 by pulkomandy, 4 years ago

The machine_id has been removed in 1bc7045fdfb85e6151d01c73669be19627c4783b when removing the 8 CPU core limit which required changing the system_info struct.

However, I would not bother implementing this on our side. Godot can very well generate an UUID when it is first run and store it in its own settings, and it would be just as good? I don't see how doing this in the OS side is helpful in any way, and using the same ID in different frameworks/APIs could possibly help tracking users on the Internets, which I don't think is a good idea.

comment:2 by waddlesplash, 4 years ago

Resolution: invalid
Status: newclosed

Agreed, Godot should generate its own unique IDs if it really needs them.

Note: See TracTickets for help on using tickets.