- Connections test
- LocalNode api
- In connectionsManager, closeAllServices method now closes socket too.
- Upgrade: [email protected], [email protected], [email protected] and their dependencies
- Remove custom libp2p
- Send replicated message on 'replicate.progress event', instead of all ids on 'replicate' event
- Logs and retry logic in websocketOverTorTest
- Added communityId param to askForMessages and sendIdsToZbay
- Moved crypto initialization from storage to connectionsManager
- Enable cors in DataServer only for development and end to end testing
- Old tor process is now shut down on windows.
- Compose libp2p address in one place
- Expose ioproxy api through connections manager to be able to close all services directly
- Registrar - don't return port if waggle uses tor
- Tor mesh test
- pass CommunityId to storage
- Security for not using the tor
- Retry connecting to registrar few times on fail
- Orbit-db in package.json - use specific commit instead of #main. Projects installing waggle should have the same version of orbit-db.
- Change orbit-db-store version to match specified orbitdb; Remove multiformats (rely on versions set in orbit-db)
- Map all registrars hidden services to port 80, and all libp2p hidden services to 443.
- Close socket after closing all waggle services
- Emit general ERROR socket event
- Community manager - keep reference not only to storage but also to registrar
- REGISTRAR_ERROR and CERTIFICATE_REGISTRATION_ERROR socket events
- ConnectionsManager.createNetwork - pass service id without '.onion' to destroyHiddenService
- WebsocketOverTor - unify generating cert data
- Stucking Tor - kill and relaunch the Tor after given timeout
- Passed certs are expected to be strings
- DestroyHiddenService method in torManager
- CreateNetwork in communitiesManager
- CreateNetwork api in IOPRoxy
- ConnectionsManager option - allow using tor files (binaries and libs) from waggle
- Register owner certificate
- spawnHiddenService and createNewHiddenService now return onion address with '.onion'
- Registrar returns also rootCA
- Snapshot-replication tests
- Certificates vaidation within websocketOverTor
- Creating community event's payload must contain certificates
- Peer network connection is via https
- LaunchComunity API
- Register user certificate API
- CSRContainsField validator
- Authenticating Tor Control Port with cookie
--- BREAKING CHANGES ---
- ConnectionsManager api changed
- Refactor responsibilities into separate classes
- Many websocket events need peerId now; Socket responses contain peerId
- Creating and relaunching community; launching registrar (via websockets)
- isWaggleMobileMode option
- Additional valitation to registrar - check if csr has basic fields
- Waggle replication tests
- Storage which can use orbitdb snapshots mechanism
- More customizable waggle nodes
- Mock tor in all registrar tests
- Moved dev dependencies to devDependencies in package.json, removed unused libraries
- Use unreleased version of orbit-db and orbit-db-store 4.1.0
- Provided script for building project on Android
- WebsocketOverTor - prepareListener was not called at all probably causing issue with peers not connecting to peers other than entry node
- Remove wrtc-mock - caused problems when installing waggle
- npm-publish github workflow
- Manually published npm package (previous one lacked files because of incomplete npm-publish github workflow)
- Publish package to npm using tags
- Entry node - subscribe for all public channels
- Conversation validator - don't assume encryptedPhrase length
- Pass proxy agent as object, not function - "TypeError [ERR_INVALID_ARG_TYPE]: The "options.agent" property must be one of Agent-like Object, undefined, or false. Received function agent"
- Npm package version 2.0.9 lacks wrtc-mock
- Added manager for mobile app
- Registering user certificate (websocket + http) - fetch data from front-end and send request to the service
- Root certificate and private key
- Certificate registration service (http + hidden service) - generate certificate for user and save it to db
- Tor binaries for 3 platforms (linux, macos, win). Use proper binary depending on current platform.
- Run tests on linux and macos (CI)
- @zbayapp/identity lib
- Verify certificate before saving it to database
- Return all certificates on db.load
- Validators for storage
- Test for validators
- Added validation functions to storage
- Removed // @ts-nocheck from Storage.ts
- Killing existing tor process on macos - command for extracting process name slightly differs for linux and macos
Pass envs to tor's --hash-password command - docker was lacking LD_LIBRARY_PATH env and therefore used default openssl 1.1.0 version (tor needs 1.1.1)
Storage: Added new methods: askForMessages
Changed databses names.
Events: Merged 'allMessages' and 'message' files into single 'messages' file
API: ConnectionsManager: added optional isWaggleMobileMode Storage: added optional isWaggleMobileMode !IMPORTANT: Those will be removed as soon as mobile version will adopt the new API
- Hashing tor password for windows
- Optional
createPaths
to options in both ConnectionManager and Storage. Default = true. When set to false waggle will not try to create any dirs and will just assume they exist. - Database for certificates and 'add certificate' websocket event. Send all certificates on write and replication orbitdb events
- Now tests use temporary dir for app data
- Removed resolveJsonModule from tsconfig and changed a way we import json module, there is trap in 'resolveJsonModule' flag that causes npm publish/pack work in unexpected way.
- Test for tor, connections manager, and dataserver
- Secured tor control port with hashed password
- Linter
- method to close
- Refactored tor control port and tor manager.
- Changed torManager API addNewService -> createNewHiddenService and addOnion -> spawnHiddenService
- Added stop method for storage
- Added stop method for libp2p
- Added stop method for dataServer
- added stop method for PeerDiscovery
- Remove undialable peers from the peer store (use custom Libp2p)
- docker-compose - run entrynode with a few peers connecting to it (for testing purposes)
- Refactor entrynode
- WebsocketOverTor - don't swallow errors when dialing
- Use
debug
for logs
- Storage - DM related methods and databses
- Connections Manager - DM related methods
- Events - DM related events
- Listeners - DM related listeners
- Tor control logic. Use control port and heartbeat to check tor status.
- Socket data server - allow setting port while creating DataServer
- Bump eslint related libraries
- http-server dependency - not used and depends on vulnerable version of ecstatic
- Tracker - keep track of the peers which connected to the p2p network. Will replace the entry node.
- Socket is now passed to the ConnectionsManager constructor
- Storage needs to be initialized directly after initializing node
- Communication with client - send all channel messages after they're loaded into memory
- Speed up creating stores for channels