hkparker / go-i2p Goto Github PK
View Code? Open in Web Editor NEWA pure Go implementation of the I2P router
License: MIT License
A pure Go implementation of the I2P router
License: MIT License
specifications here, refer to lib/common/
for examples
With this project being dormant and the I2P crypto migration all-but complete in the Java I2P and C++ i2pd implementations, I'd like to visit the idea of reviving the go-i2p project and turning it into an I2P router which is useful for client applications.
Is this something that any of the existing/former participants have any interest in being part of? If not, would I be spoiling anyone's secret plans if I were to fork the project and start working on it independently again? I do intend to start using go modules and move it to an organization's namespace(https://github.com/go-i2p/go-i2p) in order to make use of the Github organization tooling and avoid having to rename the module in the future.
$ go test ./... -race
? github.com/hkparker/go-i2p [no test files]
==2648==ERROR: ThreadSanitizer failed to allocate 0x2720000 (41025536) bytes at address 1fc6dba31c080 (errno: 12)
unexpected fault address 0x0
fatal error: fault
[signal 0x7 code=0x80 addr=0x0 pc=0x7f1b6e332435]
goroutine 1 [running, locked to thread]:
runtime.throw(0x0, 0x7f1b6df32308)
/usr/lib/go/src/runtime/panic.go:547 +0x90 fp=0x7ffee7a3cfb0 sp=0x7ffee7a3cf98
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/lib/go/src/runtime/asm_amd64.s:1998 +0x1
FAIL github.com/hkparker/go-i2p/lib/common 0.007s
? github.com/hkparker/go-i2p/lib/common/base32 [no test files]
? github.com/hkparker/go-i2p/lib/common/base64 [no test files]
? github.com/hkparker/go-i2p/lib/config [no test files]
==2521==ERROR: ThreadSanitizer failed to allocate 0x26f8000 (40861696) bytes at address 1ffafa05c4080 (errno: 12)
unexpected fault address 0x0
fatal error: fault
[signal 0x7 code=0x80 addr=0x0 pc=0x7febe7de24e5]
goroutine 1 [running, locked to thread]:
runtime.throw(0x0, 0x7febe7c80458)
/usr/lib/go/src/runtime/panic.go:547 +0x90 fp=0x7ffce1d62dc0 sp=0x7ffce1d62da8
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/lib/go/src/runtime/asm_amd64.s:1998 +0x1
FAIL github.com/hkparker/go-i2p/lib/crypto 0.006s
? github.com/hkparker/go-i2p/lib/i2np [no test files]
? github.com/hkparker/go-i2p/lib/netdb [no test files]
? github.com/hkparker/go-i2p/lib/router [no test files]
? github.com/hkparker/go-i2p/lib/transport [no test files]
? github.com/hkparker/go-i2p/lib/transport/ssu [no test files]
? github.com/hkparker/go-i2p/lib/tunnel [no test files]
https://geti2p.net/en/docs/protocol/i2np
https://geti2p.net/spec/i2np
(i will take a wack at this today)
First time I've seen a failure since we fixed the first round of these:
? github.com/hkparker/go-i2p [no test files]
? github.com/hkparker/go-i2p/lib/bootstrap [no test files]
ok github.com/hkparker/go-i2p/lib/common 0.005s coverage: 79.0% of statements
? github.com/hkparker/go-i2p/lib/common/base32 [no test files]
? github.com/hkparker/go-i2p/lib/common/base64 [no test files]
? github.com/hkparker/go-i2p/lib/config [no test files]
--- FAIL: TestDSA (0.00s)
dsa_test.go:36: sig="O[6R%\xf9kD\xe9\x1fʖhM\x06ó\xb4\x98\x90\u007f2S\xbf\xae\x9d\x8a\x90\xd0\xf1\xdc(\xf11Fݵ0\xd9p"
dsa_test.go:47: failed: invalid signature
FAIL
coverage: 55.9% of statements
FAIL github.com/hkparker/go-i2p/lib/crypto 0.037s
? github.com/hkparker/go-i2p/lib/i2np [no test files]
? github.com/hkparker/go-i2p/lib/netdb [no test files]
? github.com/hkparker/go-i2p/lib/router [no test files]
? github.com/hkparker/go-i2p/lib/transport [no test files]
? github.com/hkparker/go-i2p/lib/transport/ssu [no test files]
ok github.com/hkparker/go-i2p/lib/tunnel 0.003s coverage: 2.0% of statements
Every so often the TestElg
test fails
$ go test ./... -cover
? github.com/hkparker/go-i2p [no test files]
ok github.com/hkparker/go-i2p/lib/common 0.007s coverage: 80.1% of statements
? github.com/hkparker/go-i2p/lib/common/base32 [no test files]
? github.com/hkparker/go-i2p/lib/common/base64 [no test files]
? github.com/hkparker/go-i2p/lib/config [no test files]
--- FAIL: TestElg (0.01s)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x8 pc=0x7f1d7c002185]
goroutine 7 [running]:
panic(0x7f1d7c112ca0, 0xc82000a180)
/usr/lib/go/src/runtime/panic.go:481 +0x3e6
testing.tRunner.func1(0xc8200226c0)
/usr/lib/go/src/testing/testing.go:467 +0x192
panic(0x7f1d7c112ca0, 0xc82000a180)
/usr/lib/go/src/runtime/panic.go:443 +0x4e9
github.com/hkparker/go-i2p/lib/crypto.createElgamalEncryption(0x0, 0x7f1d7c3794f0, 0xc820016720, 0x0, 0x0, 0x0)
github.com/hkparker/go-i2p/lib/crypto/_test/_obj_test/elg.go:198 +0x175
github.com/hkparker/go-i2p/lib/crypto.TestElg(0xc8200226c0)
/home/hayden/Development/Go/src/github.com/hkparker/go-i2p/lib/crypto/elg_test.go:19 +0x197
testing.tRunner(0xc8200226c0, 0x7f1d7c420770)
/usr/lib/go/src/testing/testing.go:473 +0x98
created by testing.RunTests
/usr/lib/go/src/testing/testing.go:582 +0x892
FAIL github.com/hkparker/go-i2p/lib/crypto 0.018s
? github.com/hkparker/go-i2p/lib/i2np [no test files]
? github.com/hkparker/go-i2p/lib/netdb [no test files]
? github.com/hkparker/go-i2p/lib/router [no test files]
? github.com/hkparker/go-i2p/lib/transport [no test files]
? github.com/hkparker/go-i2p/lib/transport/ssu [no test files]
? github.com/hkparker/go-i2p/lib/tunnel [no test files]
Every so often the TestDSA
test fails
? github.com/hkparker/go-i2p [no test files]
ok github.com/hkparker/go-i2p/lib/common 0.007s coverage: 77.8% of statements
? github.com/hkparker/go-i2p/lib/common/base32 [no test files]
? github.com/hkparker/go-i2p/lib/common/base64 [no test files]
? github.com/hkparker/go-i2p/lib/config [no test files]
--- FAIL: TestDSA (0.00s)
dsa_test.go:32: sig="R\x06D\x97\x0fu#\xd1Ҧ\xf3\x11G\x0e\x0e^\xde\ue445\x91\xaf+7\u007f\xbf\xaeC\x1eͩ\x9ctsS\x90\x9b\x0fY\x00"
dsa_test.go:43: failed: invalid signature
FAIL
coverage: 55.0% of statements
FAIL github.com/hkparker/go-i2p/lib/crypto 0.065s
? github.com/hkparker/go-i2p/lib/i2np [no test files]
? github.com/hkparker/go-i2p/lib/netdb [no test files]
? github.com/hkparker/go-i2p/lib/router [no test files]
? github.com/hkparker/go-i2p/lib/transport [no test files]
? github.com/hkparker/go-i2p/lib/transport/ssu [no test files]
? github.com/hkparker/go-i2p/lib/tunnel [no test files]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.