What's Changed
- Update to Gomobile compatible sdk by @yilunzhang in #4
- Implement reverse tuna payment and geo IP filter by @yilunzhang in #9
- Switch to new version of sdk by @yilunzhang in #10
- Reduce payment timeout check interval and change traffic coverage time by @yilunzhang in #11
- Rename IPFilter -> ReverseIPFilter in exit config by @yilunzhang in #12
- Add ReverseServiceName and ReverseSubscriptionPrefix in config by @yilunzhang in #13
- Change type byte to uint8 to avoid gomobile compile error by @yilunzhang in #14
- Change meta service id to int type for gomobile compatibility by @yilunzhang in #15
- retry when get err from ip2c api by @bufrr in #16
- Fix ip2c results being ignored by @yilunzhang in #17
- Fix exit disconnect even when price is zero by @yilunzhang in #18
- Change config field first letter to non-capitalized by @yilunzhang in #19
- New protocol with encryption, bandwidth triggered payment, etc by @yilunzhang in #22
- Add UDP WIP note in readme by @yilunzhang in #23
- Add support for 32bit arm version (v5, v6, v7) by @yilunzhang in #24
- Add cli options to enable reverse mode by @yilunzhang in #25
- Remove indirect dependencies that caused gomobile crash on arm64 by @yilunzhang in #26
- Upgrade to nkn v2 import by @yilunzhang in #27
- Change encrypted-stream version to v1.0.0 by @yilunzhang in #28
- Will not subscribe if same subscription exists by @yilunzhang in #29
- Entry OnConnect will fire every time conn reconnects by @yilunzhang in #30
- Fix onconnect channel isclosed not set on close by @yilunzhang in #31
- Shuffle subscribers to get true random order by @yilunzhang in #32
- Prevent indefinitely trying to send nanopay if conn is closed by @yilunzhang in #33
- add retrys if nanopay failed and relax restrictions for the payment rules by @bufrr in #34
- Increase tolerance when checking payment amount by @yilunzhang in #35
- Prevent reverse entry not close by @yilunzhang in #36
- Provider will only disconnect if unpaid traffic > 1MB by @yilunzhang in #37
- Fix wrong nanopay amount by @bufrr in #38
- Add cli options to change seed rpc server address by @yilunzhang in #39
- Upgrade nkn-sdk-go version by @yilunzhang in #40
- Improve logs on accept error by @yilunzhang in #41
- Update payment strategy to be more robust to network failure by @bufrr in #42
- Add geo support for AWS & GCP when using IPFilter by @bufrr in #43
- Switch to new sdk version and official pb to reduce memory usage by @yilunzhang in #44
- Improving update geo db logs by @yilunzhang in #45
- fix error handling when error is not nil by @bufrr in #46
- Upgrade nkn-sdk-go version to fix nanopayclaimer not check balance by @yilunzhang in #47
- Use geodb directory as temp dir when downloading to avoid permission issue by @yilunzhang in #48
- Fix wrong tmp dir when geodb directory is ./ by @yilunzhang in #49
- Use github mirror link by @yilunzhang in #50
- check IP only if IP exist by @bufrr in #51
- fix null pointer panic when err is nil by @bufrr in #52
- add measurement delay by @iheron in #53
- Fix connecting to node that fails latency measurement by @yilunzhang in #54
- add connection close when delay measurement by @iheron in #55
- Node selection based on bandwidth measurement by @yilunzhang in #63
- Remove unused mutex lock by @yilunzhang in #64
- Add config to sort measured nodes by external caller by @yilunzhang in #65
- Add config to change measure bandwidth timeout by @yilunzhang in #66
- Fix race condition in measurement storage by @yilunzhang in #67
- use pointer to read json by @iheron in #69
- Fix the bug that bandwidth measurement may take longer than timeout by @yilunzhang in #70
- Add nanopay min flush amount to reduce near empty transactions by @yilunzhang in #71
- Allow reverse entry to specify multiple reverse service name by @yilunzhang in #72
- update common config by @iheron in #73
- Upgrade nkn-sdk-go version to fix gomobile compile error by @yilunzhang in #74
- Add limit to metadata size to prevent memory bomb by @yilunzhang in #75
- Reduce pipeBufferSize to be compatible with c++ smux by @yilunzhang in #76
- Delete favorite node before adding to avoid delete added node by @yilunzhang in #77
- Reload measure storage every time to support multiple tuna instance by @yilunzhang in #78
- Reduce measureBandwidthTopCount and favorite node size by @yilunzhang in #79
- Fix delay measure results not sorted by @yilunzhang in #80
- Use all delay measure results instead of first batch by @yilunzhang in #81
- Use favorite node as seed node by @yilunzhang in #82
- add measureBandwidth workers timeout by @iheron in #83
- Add linger logic before close and api to set linger by @yilunzhang in #84
- Simplify config code structure by @yilunzhang in #85
- Use per service measurement storage to avoid mixing nodes by @yilunzhang in #86
- Add rpc node concurrency and sync state check by @yilunzhang in #87
- Add metadata field to nkn filter to bypass rpc call by @yilunzhang in #88
- Add context variant to all measurement related functions by @yilunzhang in #89
- add MetadataRaw in Node by @iheron in #90
- Upgrade nkn-sdk-go to c39ba20 by @yilunzhang in #91
- Fix checkNanoPayClaim goroutine leak by @yilunzhang in #92
- Add retry interval when dial to server error by @yilunzhang in #93
- Upgrade nkn-sdk-go to v1.3.5 by @yilunzhang in #94
- Update default price in config example by @yilunzhang in #95
- Use nkn client instead of wallet as rpc client by @yilunzhang in #97
- Sample service provider faster using subscriberHashPrefix by @yilunzhang in #98
- replace rename api to copy file for windows compatible #96 by @bufrr in #99
- Fix empty seed rpc address when measure bandwidth is disabled by @yilunzhang in #100
- Prevent passing empty seed rpc addr array to client by @yilunzhang in #101
- Reduce getsubscribers api call when there are few subscribers by @yilunzhang in #102
- Fix using 0x00 prefix hash when sub count is less than default count by @yilunzhang in #103
- Test conn on reverse exit before choose entry node by @yilunzhang in #104
- Close test conn on reverse exit by @yilunzhang in #105
- NewTunaExit add NknFilter by @iheron in #106
- Share the same client for reverse entry by @yilunzhang in #107
- Prevent payment stream created multiple times and recipient race condition by @yilunzhang in #108
- Add measure bandwidth timeout on server side by @yilunzhang in #109
- Fix max msg size not checked in readvarbytes by @yilunzhang in #110
- Fix max msg size not checked in readvarbytes by @yilunzhang in #111
- Upgrade nkn-sdk-go to v1.3.7 to support nanopayclaimer linger by @yilunzhang in #112
- Upgrade NKN SDK by @iheron in #113
- Upgrade nkn sdk and pb version by @yilunzhang in #114
- Upgrade nkn sdk by @yilunzhang in #115
- default nanopay fee by @bufrr in #116
- Better handling of txn fee and subscription failure by @yilunzhang in #117
- Optimize the number of RPC calls when sub count is small by @yilunzhang in #118
- Fix sub txn not replaced if nonce is 0 by @yilunzhang in #119
- Update gomobile doc by @yilunzhang in #120
- Add DialContext to the configuration by @iheron in #122
- Add DialContext by @iheron in #123
- update gcp and geolite db url by @yilunzhang in #124
- Create go.yml by @bufrr in #125
- Stop connect retry after tuna is closed by @yilunzhang in #128
- Bug fix: tuna might not exit when closed by @yilunzhang in #129
- Upgrade nkn sdk to v1.4.2 by @yilunzhang in #130
- Upgrade nkn sdk to v1.4.3 by @yilunzhang in #131
- UDP transmission with encryption and nanopayment by @bufrr in #121
- mv udp code to the root by @bufrr in #133
- add deadline api for encrypted udp connection by @bufrr in #132
- fix typo in config.go by @bufrr in #134
- Fix gomobile compile error due to UDPConn interface by @yilunzhang in #136
- Add gomobile build by @iheron in #137
- fix udp write to wrong addr when client under NAT by @bufrr in #135
- Upgrade nkn sdk by @iheron in #138
- fix udp started before local variables available by @bufrr in #140
- Fix multi udp connections data overlaps by @billfort in #139
- change reverse test to multiple client scenario by @bufrr in #141
- test multiple connection for each client side conn in reverse mode by @bufrr in #142
- Drop unencrypt message except metadata and add more tests by @bufrr in #143
- Upgrade nkn sdk to v1.4.5 by @yilunzhang in #145
- Fix thread unsafe codec for UDP encode and decode by @bufrr in #146
- Check wallet balance in CreateServerConn by @billfort in #147
- Tcp deadlock fix by @bufrr in #148
- setlinger & close EOF tcp conn by @bufrr in #150
- update testcase by @bufrr in #149
- sending heart beat msg from client to server periodically by @bufrr in #151
- Fix measured bandwidth could be inf by @yilunzhang in #152
- udp: fix read from closed udp conn by @bufrr in #153
- Change subscribe interval in subqueue to 1 min by @yilunzhang in #154
- add buffer for udp read&write channel by @bufrr in #155
- fix crash when entry config does not have ipfilter by @yilunzhang in #158
- Bump golang.org/x/crypto from 0.7.0 to 0.17.0 by @dependabot in #156
- Bump google.golang.org/protobuf from 1.29.1 to 1.33.0 by @dependabot in #157
- add darwin-arm64 target in makefile by @yilunzhang in #159
Full Changelog: https://github.com/nknorg/tuna/commits/v0.1.0