News

Weekly Dev Meeting - Refactoring Connection Handler for Better Unit Testing

5 July, 2024

This week we’ve been focussed on a crucial refactoring task to improve how we manage network connections. The goal is to make it easier to isolate bugs by separating the connection handling logic from the transport layer so they can be tested independently. What’s Changing: Decoupling Connection Handling: We’re separating the connection handling code from the transport layer. This change allows us to test connection states on their own, without involving the transport mechanisms.

How Freenet Works

10 June, 2024

Ian Clarke, the creator of Freenet, explains how we solve problems like efficiently finding data, adapt to changing network conditions, and managing a peer’s resource usage. Q&A includes how Freenet compares to other networks, the history of Freenet, and how Freenet adapts to geography. Also available on Rumble 𝕏

Weekly Dev Meeting - Gateway deployment, freenet-chat

10 June, 2024

Freenet Chat Development: Ian has been working on the Freenet chat system and shared a specification document. He decided to focus on a web-based interface rather than a command-line interface due to ease of implementation. A significant topic was the method for updating contracts within the network. Ian proposed a replace contract field that allows for contract updates signed by the contract owner, similar to HTTP 301 redirects. Technical Challenges and Solutions:

Weekly Dev Meeting - Enhancing Connection Stability and Finalizing Transport Fixes

24 May, 2024

Focus on Connection Stability and Transport Improvements Our primary focus has been on enhancing the stability and functionality of the connection and transport layers within Freenet. Ignacio has dedicated significant effort to address issues related to the connect operation and transport mechanisms. We’ve identified and resolved several bugs, ensuring that connections are maintained properly and cleaned up when lost. Although we haven’t fully tested all scenarios, the connect operation is now functioning as expected.

Weekly dev meeting - network integration testing and squashing final bugs

11 May, 2024

In our latest dev meeting, we dove into the recent updates and challenges with the Freenet network protocol. Ignacio shared the latest on our efforts to boost node connectivity and stability across the network. What’s New: Stability and Bug Fixes: We spent a good chunk of this week squashing bugs to make network connections more stable. Ignacio explained the technical hurdles we’re tackling to keep connections between nodes reliable. It’s tricky but we’re making headway.

Weekly dev meeting - progressing Towards Network Stability

3 May, 2024

Summary: In this week’s Freenet developer meeting, Ian Clarke and Ignacio Duart discussed significant advancements and remaining challenges before getting the network up and running. The primary focus was on refining the connection and configuration processes within Freenet’s system. Key highlights include: Configuration Management: The developers have implemented a system to set and save default configurations, which are crucial for initializing and maintaining stable operations after restarts. The configuration files are currently managed using TOML due to its robust support in Rust.

Weekly Developer Meeting: Updating State and Performance Optimizations

22 November, 2023

We had a detailed technical discussion focusing on various aspects of our project, Freenet. Here’s a breakdown of the key points: Contract Update Mechanism: We tackled the contract update mechanism, crucial for handling the state (the associated data) of contracts in our key-value store. This involves understanding how updates are initiated by applications, the merging of states, and the process of sending updates to subscribers. Update and Merge Process: We discussed the specifics of how updates work, particularly focusing on the ‘put’ operation.

Zero-Knowledge Proofs and Anonymous Reputation in Freenet

29 October, 2023

Zero-knowledge proofs are one of the most significant developments in cryptography since the invention of public-key crypto in the 1970s. But what exactly are they, what are they useful for, and what is their relevance to Freenet? What Are Zero-Knowledge Proofs? In essence, zero-knowledge proofs (ZKPs) allow one party to prove that they have some secret information, but without revealing anything about the information itself. For example, you could prove that you have some data that satisfies a certain condition like hashing to a particular value, without revealing the data itself.

How to Build Apps on Freenet

7 September, 2023

Ian Clarke explains how to build apps on Freenet, including the basic components of Freenet’s architecture like contracts, delegates, and user interfaces. Also available on Rumble 𝕏

Proof-of-Trust: A Wealth-Unbiased Consensus Mechanism for Distributed Systems

28 August, 2023

Traditional approaches to rate-limiting the creation of things like coins, tokens, and identities in distributed networks rely on computational (proof-of-work) or financial barriers (proof-of-stake) as a source of scarcity. While effective in some contexts, these methods are wasteful and unfairly favor those with more resources. What is Proof-of-Trust? Proof-of-Trust offers an alternative by utilizing the scarcity of reciprocal trust between individuals as the primary resource for rate-limiting various network activities. Unlike existing models, Proof-of-Trust does not inherently favor participants with greater computational power or financial means.

Ian Interviewed by Louis Rossman

13 September, 2022

Ian sat down with Louis Rossmann to discuss the history and motivation for Freenet, and why he decided to re-architect it.

Mitigating Sybil attacks in Freenet

26 June, 2022

Every node in the Locutus network has a location, a floating-point value between 0.0 and 1.0 representing its position in the small-world network. These are arranged in a ring so positions 0.0 and 1.0 are the same. Each contract also has a location that is deterministically derived from the contract’s code and parameters through a hash function. The network’s goal is to ensure that nodes close together are much more likely to be connected than distant nodes, specifically, the probability of two nodes being connected should be proportional to 1/distance.