-
Couldn't load subscription status.
- Fork 3
Version 1.1.0 Changelog
Version 1.1.0 comes with new features:
- Consensus for cache (no more microdescriptors)
- Exit policy check with default ports
- Faster proxy with async and parallel read/write, custom port enabled.
- 8 ready circuits
- Better performances
- Less memory used
- Support for ESP32-S2 and ESP32-WRover, full support for SPI RAM
- Statistics
- New commands and better, selective, log output
- Total debug suppression (increased performances)
The method to build the nodes cache is now based on consensus download from authority directories (previously v.1.0.0 used microdescriptors, pre-release used Onionoo service).
In the settings file BriandDefines.hxx now is available a new array where you can define "must-have" exit-node ports.
New proxy uses now async (FreeRTOS) tasks and separated read/write operations. Some SDK config settings needed to be updated to achieve good performances and avoid crashes. Now thread-safe and written in standard C++17. Avoided, where possible, FreeRTOS threads.
Changes to sdkconfig settings allowed to have up to 8 built circuits and max. 5 (2/3 of 8) working proxy connections. A queue has been implemented. Changes to settings led to more RAM available.
Thanks to the updates and testing of the basic library LibBriandIDF.
Implemented a small statistics library, statistics are available through torstats command.
New commands have been added and some other suppressed. Now a unique log command can manage specific levels for output to stdout. See Commands.
ESP_LOGD calls have been conditioned to a #define, if variable SUPPRESSDEBUGLOG is defined then all ESP_LOGD around the code are suppressed at compile-time. The SUPPRESSDEBUG is enabled by default but can be easly changed in the settings file BriandDefines.hxx.
Statistics shows a better performance on small platforms like ESP32 (all done by loading https://www.torproject.org webpage with firefox connected to AP), using LolinD32, no SPIRAM:
Compiling size:
RAM: [= ] 11.3% (used 36952 bytes from 327680 bytes)
Flash: [====== ] 60.9% (used 1277709 bytes from 2097152 bytes)
Statistics:
No. of normal stream finish: 8
No. of received paddings: 8
No. of exit policy errors: 0
No. of protocol errors: 4
Cache build time (s): 230
No. of cache guard fail: 1
No. of cache middle fail: 3
No. of cache exit fail: 9
No. of cache fail for same family ip: 0
No. of failed connections to guard: 0
No. of failed create2: 0
No. of failed extend2: 1
Max time to build a circuit (ms): 8861
Avg time Tor stream recv (ms): 1 (based on 1868 stream cells)
Avg time Tor stream send (ms): 3 (based on 208 stream cells)
Compiling size:
RAM: [= ] 11.3% (used 36968 bytes from 327680 bytes)
Flash: [====== ] 62.8% (used 1317137 bytes from 2097152 bytes)
Statistics:
No. of normal stream finish: 8
No. of received paddings: 30
No. of exit policy errors: 0
No. of protocol errors: 2
Cache build time (s): 270
No. of cache guard fail: 7
No. of cache middle fail: 0
No. of cache exit fail: 3
No. of cache fail for same family ip: 0
No. of failed connections to guard: 0
No. of failed create2: 0
No. of failed extend2: 0
Max time to build a circuit (ms): 12273
Avg time Tor stream recv (ms): 3 (based on 2620 stream cells)
Avg time Tor stream send (ms): 3 (based on 481 stream cells)
Statistics:
No. of normal stream finish: 6
No. of received paddings: 45
No. of exit policy errors: 0
No. of protocol errors: 5
Cache build time (s): 32
No. of cache guard fail: 4
No. of cache middle fail: 6
No. of cache exit fail: 1
No. of cache fail for same family ip: 0
No. of failed connections to guard: 0
No. of failed create2: 0
No. of failed extend2: 0
Max time to build a circuit (ms): 15061
Avg time Tor stream recv (ms): 2 (based on 2804 stream cells)
Avg time Tor stream send (ms): 2 (based on 199 stream cells)