← Back to all posts

Heliodex project update – June 2025

Published 13 July 2025 at 17:45
Updated 13 July 2025 at 17:45

Hey all, welcome to another project update. I've been inside drinking plenty of water and writing plenty of code recovering from the unbearable Scottish summer heat of over 15°C.

Mercury

At the moment, I'm working on 2 branches in the Mercury Core repository: assets and docs. The assets branch contains some updates to the Economy service, allowing it to handle asset transactions for limited and unlimited assets. It also reduces the complexity of currency by making stipends constant and removing fees, which may destabilise the economy somewhat, but we'll find that out in the future. The docs branch contains a basic documentation site for Mercury Core and related services, which is still a work in progress. As outlined in #389, I'd like to continue adding to the site over the course of Mercury 3's development in terms of documentation, guides, and tutorials.

As for client development, we have more progress done on the DLL hook, however client development will be on hold for a bit until we can fix some technical issues.

Mercury Launcher

After 11 months I revived my F# learning project, and we now have an installer and launcher for the Mercury client. The repository also features a basic setup deployer, which might not be as fast as previous iterations but is a lot simpler and easier to use, as well as actually working on platforms other than Windows! On first launch, the launcher registers a URI that can be launched from the site, and installs the latest version of the client if it is not already installed. Updating and removal of old versions is also implemented.

The deployed client folder is tar.gzipped, which seems to work okay, with a total final size of about 80MB per deployment. I've been interested in using an alternative compression method/format, though they each come with their various tradeoffs.

The project is designed to be fairly configurable, and in future should allow easy changing of URLs and window styling to support multiple revival platforms.

Coputer

Gateways are finally happening! A basic implementation is complete, requesting programs from the communication system and allowing Coputer to serve its first ever webpage. This makes the Coputer network the most overengineered web server ever.

Gateway URLs have been changed to {program name}-{creator PK}.gateway.example.com, instead of the previous possible double-subdomain approach. This is to prevent issues with TLS wildcard certificates. Dynamically generated certificates could have been used, but they added a significant amount of latency for the first request to each program, and may have introduced security issues.

Wallflower now features a transfer protocol between other communication systems, based on QUIC. It was originally intended to be based on UDP, but it turns out that this would have been more difficult due to the 64KiB datagram size limit and lack of reliable packet ordering. QUIC streams, with length-prefixed messages (yeah, we can hide their size in future), ended up being a lot more flexible and reliable.

There's also some potential here to use TLS 1.3 as the only encryption for the network, as currently each node uses a (slightly scuffed) self-signed certificate on top of the encryption of every message. Bidirectional QUIC streams could also be used, as currently each stream is unidirectional, responding to messages by streaming it to the addresses included in the message rather than the QUIC-specified sender.

Program storage messages include the creator and a signature, so that a program can be distributed by anyone rather than just the creator, and at the moment this signature is verified but not stored by the execution system.

Upon requesting a program from a communication system (and by extension, a gateway), it will ask its peers for the program if its execution system doesn't have it. The peers can now all respond with an empty RunResult message if they don't have the program, allowing the communication system to return an error to the client rather than just hanging forever. However, this situation still happens if a peer fails to connect or respond, as the Net implementation (in production, the new QuicNet) has no way to notify the communication system of this, as the raw message receive channel only allows encrypted and signed messages to be sent. This could be solved with a timeout mechanism, an additional error/local communication channel, or marking messages in the existing channel as internal or external.

There haven't been any major changes to the VM this month. Hopefully I'll be able to get the first ever Coputer program hosted soon, likely through a gateway hosted at coputer.heliodex.cf.

Execxorcist

Achieving my goal of running processes in the background will probably be a bit more of a challenge than I thought, as in Windows, subprocesses are also killed if a terminal containing the main process is killed.

Commands can now be given names, and listed in a configuration file for easier starting/stopping/killing. The working directory for commands can also be set.

Other posts

Heliodex project update – May 2026

May 2026 updates for Heliodex projects

Published 4 June 2026 at 17:01 #monthlyupdate

Welcome!

The first actually-official post of my blog.

Published 25 May 2026 at 01:56

Heliodex project update – April 2026

Project update for Heliodex projects in April 2026

Published 3 May 2026 at 02:02 #monthlyupdate

Heliodex project update – March 2026

March 2026 issue of the Heliodex project update

Published 6 April 2026 at 20:18 #monthlyupdate

Heliodex project update – February 2026

Monthly project update – February 2026

Published 4 March 2026 at 04:49 #monthlyupdate

Heliodex project update – January 2026

1st 2026 project updateee

Published 6 February 2026 at 00:42 #monthlyupdate

Heliodex project update – December 2025

Updates for Heliodex projects in December 2025

Published 12 January 2026 at 23:09 #monthlyupdate

Heliodex project update – November 2025

November 2025 Heliodex project update

Published 12 December 2025 at 20:17 #monthlyupdate

Heliodex project update – October 2025

Monthly update for October 2025

Published 9 November 2025 at 06:21 #monthlyupdate

Heliodex project update – September 2025

Another montly update for September 2025

Published 7 October 2025 at 12:58 #monthlyupdate

Heliodex project update – August 2025

Heliodex's monthly project update, for August 2025!

Published 9 September 2025 at 17:38 #monthlyupdate

Heliodex project update – July 2025

July 2025 Heliodex project update

Published 12 August 2025 at 22:48 #monthlyupdate

Heliodex project update – May 2025

Project update for May 2025

Published 13 June 2025 at 13:43 #monthlyupdate

Heliodex project update – April 2025

Monthly update for Heliodex's projects, April 2025

Published 10 May 2025 at 04:19 #monthlyupdate

Heliodex project update – March 2025

Another monthly update to Heliodex projects for March

Published 10 April 2025 at 19:27 #monthlyupdate

Heliodex project update – February 2025

Heliodex monthly project update for February 2025

Published 10 March 2025 at 01:08 #monthlyupdate

Heliodex project update – January 2025

irst 2025 monthly Heliodex project update

Published 13 February 2025 at 17:38 #monthlyupdate

Heliodex project update – December 2024

Changes to Heliodex projects for the end of 2024

Published 14 January 2025 at 23:55 #monthlyupdate

Heliodex project update – November 2024

Update for projects by me for November 2024

Published 14 December 2024 at 07:15 #monthlyupdate

Heliodex project update – October 2024

actual October 2024 update

Published 13 November 2024 at 00:13 #monthlyupdate

Heliodex project update – September 2024

September* 2024 Heliodex projects update

Published 8 October 2024 at 00:31 #monthlyupdate

Heliodex project update – July/August 2024

Double July and August 2024 update by Heliodex

Published 8 September 2024 at 23:59 #monthlyupdate

Heliodex project update – June 2024

big June 2024 update for projects with Heliodex yeah

Published 12 July 2024 at 04:34 #monthlyupdate

Heliodex project update – May 2024

May 2024: more updates for projects by Heliodex

Published 7 June 2024 at 22:10 #monthlyupdate

Heliodex project update – April 2024

update 4 for 2024 for Heliodex projects in April

Published 14 May 2024 at 04:09 #monthlyupdate

Heliodex project update – March 2024

Heliodex projects update for 2024 March

Published 4 April 2024 at 07:49 #monthlyupdate

Heliodex project update – February 2024

update for Heliodex projects month of February 2024

Published 8 March 2024 at 23:50 #monthlyupdate

Heliodex project update – January 2024

first 2024 january Heliodex project update

Published 13 February 2024 at 04:13 #monthlyupdate

Heliodex project update – December 2023

final 2023 Heliodex project update

Published 13 January 2024 at 03:58 #monthlyupdate

Bootstrap considered harmful

Bootstrap considered harmful

Published 4 January 2024 at 15:10

Heliodex project update – November 2023

update information for Heliodex projects in November 2023

Published 11 December 2023 at 13:52 #monthlyupdate

Heliodex project update – October 2023

update to projects by Heliodex for October

Published 6 November 2023 at 02:41 #monthlyupdate

Heliodex project update – September 2023

late update to Heliodex projects for the month of September

Published 8 October 2023 at 18:31 #monthlyupdate

Heliodex project update – August 2023

update for August on projects by Heliodex

Published 2 September 2023 at 23:26 #monthlyupdate

Heliodex project update – July 2023

Heliodex projects July update

Published 4 August 2023 at 04:14 #monthlyupdate

Heliodex project update – June 2023

update for June on Heliodex projects

Published 2 July 2023 at 07:12 #monthlyupdate

Heliodex project update – May 2023

information about projects by Heliodex for May

Published 3 June 2023 at 02:46 #monthlyupdate

Heliodex project update – April 2023

update for Heliodex projects april

Published 2 May 2023 at 21:52 #monthlyupdate

Heliodex project update – March 2023

Project update 5 for march

Published 2 April 2023 at 22:04 #monthlyupdate

Heliodex project update – February 2023

Heliodex project update 4

Published 3 March 2023 at 22:35 #monthlyupdate

Heliodex project update – January 2023

project update 3

Published 2 February 2023 at 04:59 #monthlyupdate

Heliodex project update – December 2022

project update number 2

Published 2 January 2023 at 05:26 #monthlyupdate

Heliodex project update – November 2022

project update for projects

Published 24 November 2022 at 19:15 #monthlyupdate