Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Arti
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jill
Arti
Commits
65b77517
Commit
65b77517
authored
2 years ago
by
Nick Mathewson
Browse files
Options
Downloads
Patches
Plain Diff
Start a changelog for Arti 0.2.0
parent
482b2e32
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
CHANGELOG.md
+136
-2
136 additions, 2 deletions
CHANGELOG.md
with
136 additions
and
2 deletions
CHANGELOG.md
+
136
−
2
View file @
65b77517
### Notes
This file describes changes in Arti through the current release. Once Arti
is more mature, and we start to version crates independently, we will
probably switch to using a separate changelog for each crate.
is more mature, and we start to version crates independently, we may
switch to using a separate changelog for each crate.
# Arti 0.2.0 — XXXX Apr 2022
BLURB
(entries below are taken through 482b2e3256cc0c738dc1deb3029173b8619920dd)
### Breaking changes
Here are the main breaking changes visible from the arti-client crate.
Numerous other lower-level crates have breaking changes not noted here.
-
Significant refactoring to our configuration handling logic and APIs.
The goals here are:
-
To have the current
`ConfigBuilder`
types
become the only user-visible configuration objects, and to have the
current
`Config`
objects become implementation details.
-
To remove
`arti-config`
entirely, and fold its contents into
`arti`
or
`arti-client`
as appropriate.
-
To remove unnecessary ad-hoc accessor functions until they prove to be
needed.
This change
is not done in this release; we expect to have more breakage
in this area in our next release as well. ([#314], [#371], [#372],
[#374], [#396], [#418],
[!391], [!401], [!417], [!421], [!423], [!425], [!427])
-
The [
`Runtime`
] trait now includes (and requires) UDP support. (Part
of [!390]'s support for DNS.)
-
Stream isolation support is completely revised; see notes on isolation
below.
### New features
-
Experimental feature to allow the [
`DirMgr`
] to be replaced by
a user-provided [
`DirProvider`
]. ([#267], [!318], [!347])
-
Arti now tolerates IPv6-only environments, by using a basic form of
the [RFC 8305] "happy eyeballs" algorithm to try connections to
relays' IPv4 and IPv6 addresses in parallel. ([!382])
-
New experimental APIs for modifying consensus objects ([!318], [!402])
-
The
`arti`
crate now exists as a library, to better expose features
like its top-level configuration logic. ([!403])
-
Arti now supports a
`dns_port`
to relay A, AAAA, and PTR requests over
the Tor network, like the C tor implementation's DnsPort. ([!390],
[!408], [!409])
-
Arti has a new full-featured [stream isolation API] that supports more
complicated isolation rules, including user-supplied rules. ([#150],
[#414], [!377], [!418], [!420], [!429], [!434])
-
Channel and Circuit objects now remember the peers that they used
when they were constructed, and allow queries of this information as
part of their API. ([#415])
-
The logic for retrying failed guards has been revised to use
the same decorrelated-jitter algorithm as directory requests, per
[proposal 336]. ([cb103e04cf4d9853], part of [#407], [!426])
-
When all our guards have failed, we no longer retry them all
agressively, but rather assume that our net connection is down and
wait a while. ([eed1f06662366511], part of [#407], [!426])
-
When running as a directory client, we now remember more information
about the source of each request, so we can avoid caches that have
failed. ([87a3f6b58a5e75f7])
-
Experimental feature to install a "filter" for modifying incoming
directory objects. Used for testing, to observe client behavior when
the directory is in an inconsistent or non-working state. ([#397], [!431])
-
Arti now has initial support for a "Dormant Mode" where periodic events are
suspended. Later, even more background tasks will be shut
down. ([#90], [!429])
### Major bugfixes
### Infrastructure
-
We have a new [
`arti-testing`
] crate (not published on crates.io) to
perform various kinds of stress-testing on our implementation. It can
simulate several kinds of failure and overload conditions; we've been
using it to improve Arti's behavior when the network is broken or
misbehaving. ([!378], [!392]; see also [#329])
-
The [
`arti-bench`
] tool now constructs streams in parallel and
supports isolated circuits, so we can
stress-test the performance of a simulated busy client. ([#380], [!384])
-
Reproducible build scripts now use Rust 1.59 and Alpine 3.15. ([#376],
[!380])
-
Improved messages from reproducible build script. ([#378], [!383])
-
Scripts to launch chutney are now refactored and de-duplicated ([!396])
### Documentation and Examples
-
Better documentation for default configuration paths. ([!386])
-
Instructions for using Tor Browser with Arti on Windows. ([!388])
-
Better instructions for building Arti on Windows. ([!389], [!393])
-
Improved documentation for stress-testing Arti. ([!407])
### Cleanups, minor features, and minor bugfixes
-
Use [
`derive_more`
] and [
`educe`
] (and simple built-in
`derive`
) in
many places to simplify our code. ([!374], [!375])
-
Use a [forked version of
`shellexpand`
] to provide correct behavior on
Windows. ([!274], [!373])
-
Avoid unnecessary
`Arc::clone()`
s in
`arti-client`
experimental
APIs. ([#369], [!379])
-
New [
`tor-basic-utils`
] crates for small pieces of low-level
functionality.
-
Small performance improvements to parsing and allocating directory objects,
to improve start-up and download times. ([#377], [!381])
-
Use significantly less memory (on the order of a few megabytes less per
running client) to store directory objects. ([#384], [#385], [#386], [#387],
[#388], [!389], [!398], [!415])
-
Avoid allocating a backtrace object for each channel-creation
attempt. ([#383], [!394])
-
Always send an "If-Modified-Since" header on consensus requests, since
we wouldn't want a consensus that was far too old. ([#403], [!412])
-
Actually acknowledge preemptive circuits configuration. Previously,
we missed a place where we needed to copy it. (Part of [!417])
-
Backend support for collecting clock skew information; not yet
used. ([#405], [!410])
-
Major refactoring for periodic events, to support an intial version of
"dormant mode." ([!429])
### Acknowledgments
XXXXXXXXXXXXXXXXXXXXXXX
# Arti 0.1.0 — 1 Mar 2022
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment