Commit Graph

180 Commits

Author SHA1 Message Date
Ian Jackson ef834a2c0b rpc: Provide a list of ErrorKind strings
Prompted by
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1107#note_2893078
2023-04-11 20:02:01 +01:00
Ian Jackson 9f8ba36814 rpc: Be more explicit about what the string error message is for (typo) 2023-04-11 20:02:01 +01:00
Nick Mathewson 1bc8bb4fb4 rpc: Be more explicit about what the string error message is for 2023-04-11 20:02:01 +01:00
Ian Jackson fca4535066 rpc: Proposed error format 2023-04-11 20:02:01 +01:00
Ian Jackson 19799ceea4 dev docs: Make some explanation about semver 2023-04-11 19:41:28 +01:00
Ian Jackson 1c2bc8e92f dev docs: Make a heading a subheading 2023-04-11 19:33:14 +01:00
Ian Jackson ed46998f4a dev docs: Remove an obsolete comment.
I think we've bedded in the new process.
2023-04-11 19:33:07 +01:00
Alexander Færøy 1ff417c020 Update s101 values. 2023-04-11 18:35:56 +02:00
Nick Mathewson df0d5054a2 Merge branch 'release' into 'main'
doc/dev/Release.md: patch release workflow

See merge request tpo/core/arti!1111
2023-04-05 14:42:03 +00:00
Ian Jackson d4760f6d50 Merge branch 'rpc' into 'main'
Proposed rpc protocol edits and tightenings-up

See merge request tpo/core/arti!1078
2023-04-04 15:15:40 +00:00
Nick Mathewson 371da67641 rpc: Fix typos 2023-04-04 14:43:37 +00:00
Ian Jackson 599e2ffb7d doc/dev/Release.md: patch release workflow
We did roughly this today.  We put the CHANGELOG.md change in its own
MR, so it didn't end up in the tor-llcrypto-v0.4.4 tag.  It would have
been better to do it the other way so that's what I've documented.

I couldn't test-format this with pandoc because it got tricked by some
of the `$` into trying to run TeX.
2023-04-04 15:41:00 +01:00
Ian Jackson 854508d4ca rpc: Speak of "Arti" rather than "arti"
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889618
2023-04-03 17:59:58 +01:00
Ian Jackson b25cb1479c rpc: State the integer round-trip range limits
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889617
2023-04-03 17:58:06 +01:00
Ian Jackson 22b1c89344 rpc: Don't talk about "properties" of objects: rather, "members"
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889616
2023-04-03 17:55:09 +01:00
Ian Jackson 826b85f873 rpc: Move notes about cancellation to right section
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889614
2023-04-03 17:53:17 +01:00
Ian Jackson 374f76e1df rpc: Be clearer about updates content
You can't parse an update without knowing the request method (this was
already stated elsewhere).

Prompted by
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889613
2023-04-03 17:51:36 +01:00
Ian Jackson 250bb1aac6 rpc: Change how we talk about objects
Use just "object" in the introduction, but be specific that the
abstract data type is I-JSON, even if we later invent other
representations.

Prompted by
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889612
2023-04-03 17:47:09 +01:00
Ian Jackson b0a8b272f5 rpc: Right at top, say I-JSON
Prompted by
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889612
2023-04-03 17:44:40 +01:00
Ian Jackson 6fad573921 rpc: Change wording about responses
Prompted by
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1078#note_2889611
2023-04-03 17:42:56 +01:00
Dimitris Apostolou 94ba102a3b
Fix typo 2023-03-24 21:43:32 +02:00
Ian Jackson fc53f3ce98 rpc: Start on a list of the differences with JSON-RPC 2023-03-24 18:23:55 +00:00
Ian Jackson 53dbe74980 rpc: Discuss ordering and buffering 2023-03-24 18:23:55 +00:00
Ian Jackson ba4e1b0a1e rpc: Define term `field` 2023-03-24 18:23:55 +00:00
Ian Jackson 58fcb77825 rpc: Discuss cancellation request obj 2023-03-24 18:23:55 +00:00
Ian Jackson 2e0cad46bb rpc: Clarify what precisely the responses depend on
The format of an update or result depends on the *method* but not the
parameters or the subject.

Declare that the format of an error is uniform.  (It could have an
enum in it.)
2023-03-24 18:23:55 +00:00
Ian Jackson c4b75d9890 rpc: State that we're using I-JSON 2023-03-24 18:23:55 +00:00
Ian Jackson c64e44516b rpc: Forbid troublesome numbers as ids
This is a bit sad but I think we should have a conservative JSON
profile.
2023-03-24 18:23:55 +00:00
Ian Jackson e52b9ff9b6 rpc: Be more explicit about ignoring JSON fields 2023-03-24 18:23:55 +00:00
Ian Jackson 657c02c1ce rpc: Clarify/restate method definition requirements
In particular, abolish the notion of a "response type".  Since
responses don't come with a discriminant, each method may have only
one success response format (although of course that format might
itself have optional fields or be an enum or something).
2023-03-24 18:23:55 +00:00
Ian Jackson 131446620a rpc: Use Object for method targets and JSON object for document objects 2023-03-24 18:23:55 +00:00
Ian Jackson 094748cc1a rpc: Make `params` in a request non-optional
*If* it is optional that would depend on the request, which is a bit
 complicated to specify precisely.  And making it mandatory is more
 orthogonal.
2023-03-24 18:23:55 +00:00
Nick Mathewson 102a2ab540 rpc-meta-draft: Sketch an even-lower-level API. 2023-03-24 17:28:19 +00:00
Nick Mathewson a3de60bd86 rpc-draft: Sketch out more commands to add, start sketching APIs 2023-03-24 17:28:19 +00:00
Nick Mathewson d67dddcc8d rpc-meta: clarify when "object" means "JSON object". 2023-03-24 17:28:19 +00:00
Nick Mathewson 67ee3b225f rpc-meta: expand on handle/reference semantics. 2023-03-24 17:28:19 +00:00
Nick Mathewson 273b565b32 rpc-meta: Use "will" for what Arti does, "must" for what client does. 2023-03-24 17:28:19 +00:00
Nick Mathewson b06d853e12 rpc-meta: Rename intermediate response to "update". 2023-03-24 17:28:19 +00:00
Nick Mathewson eee5d847be rpc-meta-draft: consistently say "request" or "method", not "command". 2023-03-24 17:28:19 +00:00
Nick Mathewson 5f9a28d227 rpc-meta-draft: make a number of localized changes from the review. 2023-03-24 17:28:19 +00:00
Nick Mathewson 906b4bb631 Start drafting a dev note about a JSON-based OO RPC design. 2023-03-24 17:28:19 +00:00
Nick Mathewson 18e8ac7cb6 Rename key identifiers that have changed in the spec
Generated with perl:

s/K([PS])_hs_intro_tid/K$1_hs_ipt_sid/g;
s/K([PS])_onion_ntor/K$1_ntor/g;
s/K([PS])_hs_intro_ntor/K$1_hss_ntor/g;
s/K([PS])_hs_desc_ephem/K$1_hss_desc_enc/g;
2023-02-08 11:57:51 -05:00
Nick Mathewson d790ba2776 ffi_rpc_sketch: rearrange. 2023-02-03 08:55:21 -05:00
Nick Mathewson 19346ee891 ffi_rpc_sketch: tweak colors. 2023-02-03 08:54:02 -05:00
Nick Mathewson 49b217486a Add a sketch for our FFI/RPC architecture
I think that this might be the way forward, depending on our current
requirements and our users' current needs.  I've traced out some
challenges that would imply.
2023-02-03 08:48:33 -05:00
Alexander Færøy d41dbc2a46 Update Tor number for s101 o3 (Tor: 2033cc7b5e). 2023-01-27 12:50:06 +01:00
Alexander Færøy e30ece3532 Fix typo. 2023-01-27 12:46:14 +01:00
Nick Mathewson 79c6881366 exportedapisketc: note that HTTP can be tricky. 2023-01-26 08:29:46 -05:00
eta 51741398b2 Merge branch 'netdoc-builder' into 'main'
tor-netdoc: Provide NetdocEncoder (internal)

See merge request tpo/core/arti!984
2023-01-26 11:40:50 +00:00
Nick Mathewson 422e3382aa New results for heap_and_download_size.md 2023-01-25 14:59:46 -05:00
Nick Mathewson 410d05697f Try to be less ambigous about "maybe offline"...
...by defining "offline" as "maybe online".

@diziet is this what you had in mind?
2023-01-24 11:39:10 -05:00
Nick Mathewson b667faf5c5 Try to specify which keys are which
Use the terminology in the current draft torspec!105 MR.
2023-01-24 11:39:10 -05:00
Nick Mathewson 8764c64564 Add a note about key storage in onion services and clients 2023-01-24 11:39:10 -05:00
Ian Jackson 16c4fee4b8 netdoc-builder: Move example into implementation doc comment
Not actually tested yet
2023-01-24 16:15:17 +00:00
Ian Jackson e971d1ad59 netdoc-builder api: Move internal API into actual code file
Motion, plus the bare minimum needed to make it compile.
2023-01-24 16:15:17 +00:00
Ian Jackson bb5565b800 netdoc-builder api: Remove obsolete proposed `Item` changes
We decided against these in !969
2023-01-24 16:15:17 +00:00
Ian Jackson 99686c61de netdoc-builder api: Write down the correctness (non)-guarantees 2023-01-20 14:21:17 +00:00
Ian Jackson 6f17a88b0b netdoc-builder api: Make object() take self
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/969#note_2869594
2023-01-20 14:21:17 +00:00
Ian Jackson 694de0e163 netdoc-builder api: Change object multiplicity to 0 or 1 2023-01-20 14:21:17 +00:00
Ian Jackson 673d13a82b netdoc-builder api: Provide raw methods 2023-01-20 14:21:17 +00:00
Ian Jackson 2fdb65287d netdoc-builder api: Fix typo 2023-01-20 14:21:17 +00:00
Ian Jackson 3ce394f168 netdoc-builder api: Clarify ItemEncoder.objects content 2023-01-20 14:21:17 +00:00
Ian Jackson fa96addf01 netdoc-builder api: In internal notes don't promise not to eagerly add 2023-01-20 14:21:17 +00:00
Ian Jackson 0755069e5a netdoc-builder api: Rename internal Builder to Encoder
This seems clearer now and also it solves the name clash with the
`NetdocBuilder` trait.
2023-01-20 14:21:17 +00:00
Ian Jackson 8f2263237b netdoc-builder api: Get rid of Item, and error rework 2023-01-20 14:21:17 +00:00
Ian Jackson 46ad6cba06 netdoc-builder api: Add example of use 2023-01-20 14:21:17 +00:00
Ian Jackson 28b99004d0 NetdocBuilder: Improvements apropos review 2023-01-20 14:21:17 +00:00
Nick Mathewson 760ddbbc5d Improved pseudocode commentary 2023-01-20 14:21:17 +00:00
Ian Jackson 7184777559 RFC netdoc builder API 2023-01-20 14:21:17 +00:00
Nick Mathewson 0ad44d2d6f Update comments based on feedback 2023-01-17 12:21:17 -05:00
Ian Jackson b6f5d3da7d Apply 1 suggestion(s) to 1 file(s) 2023-01-13 16:44:03 +00:00
Ian Jackson bf970ba486 Apply 1 suggestion(s) to 1 file(s) 2023-01-13 16:43:48 +00:00
Nick Mathewson ecff8731cc Sketch for some options and design issues around FFI/RPC
This is just a beginning, but hopefully we can expand it with more
information and options, and then use it to get everybody in our
nascent FFI/RPC working group on the same page.
2023-01-13 09:47:37 -05:00
Nick Mathewson 2ad198784d Merge branch 'hilev_docs' into 'main'
Architecture: More high-level documentation and diagrams.

Closes #624

See merge request tpo/core/arti!963
2023-01-06 19:17:29 +00:00
Nick Mathewson a0ddf51f77 Architecture.md: Move title outside of diagram
Apparently, Mermaid 9.1 did not support this.
2023-01-06 13:37:27 -05:00
Nick Mathewson fe9bf17937 Add a protocol overview for onion services. 2023-01-06 13:03:50 -05:00
Nick Mathewson 5358339169 Architecture: More high-level documentation and diagrams.
Specifically, I'm adding a high-level MDD (simplified for clarity).

I'm also adding a diagram of the object relations among our manager
types.  (There are also communications that happen via channels, but
those aren't discussed here.)  That part closes #624.

There is probably more to say here, but this should form a scaffold
we can build on.
2023-01-05 17:11:38 -05:00
Emil Engler 4fc70ccacf
doc: update the crate list in Architecture.md
This commit updates the crate list in Architecture.md. Because of the
previous commit, which introduced consistency to these files, it was
possible to generate it fairly easy with a tiny Perl script.
2022-12-20 14:33:59 +01:00
Nick Mathewson 77c23b8474 Add another step to the release process 2022-12-10 16:16:42 -05:00
Nick Mathewson 2c240923fc Move developer-facing documentation into a doc/dev subdir
Closes #576.
2022-12-05 08:58:39 -05:00