Introducing Ict 0.6 and Bridge.ixi
The full article was originally published by Samuel Rufinatscha on Medium. Read the full article here.
Today we have released version 0.6.0 of Ict. The major features are:
+ implement EEE (Environment Entity Effect) infrastructure to enable inter-ixi communication
+ translate gossip listeners and gossip preprocessors to EEE to simplify IXI
+ let modules offer their functionality through API (/getModuleResponse)
+ allow module developers to add modules to Ict from loaded classes instead of having to load from a separate .jar file -> simplifies module development and testing
+ increase efficiency by checking incoming bytes against known transactions to avoid decoding the same transaction multiple times (#51)
+ hash gui_password before storing it in ict.cfg (#59)
+ fix #53 (adding the same neighbor multiple times to ict.cfg)
+ 5s timeout after submitting wrong password to GUI to prevent brute-force attacks
Ict 0.6 introduces EEE (Environment Entity Effect), a new concept that does two things at once:
Minimizing IXI technically by replacing various specific infrastructures (addGossipListener, addGossipPreprocessor, …) with a single general solution (addListener)Extending IXI functionally by introducing Inter-IXI Communication
EEE streamlines all kinds of event-based architectures on top of IXI. Entities such as IXI modules can subscribe to Environments and will be notified about all Effects published to those environments by other entities. This enables IXI modules to subscribe to each other and effectively work together.
Not only does 0.6 introduce a way for modules to make their functionality available to other modules via EEE but also through the Ict API. The API route “/getModuleResponse” allows to send API requests to any installed module directly. Modules will no longer have to run their own API. This will increase the user experience significantly since users won‘t have to open separate ports for IXI modules (CHAT.ixi will utilize this new feature soon).
Yet 0.6 hasn’t forgotten about the developer side of IXI and enables “virtual module loading”, a way for module owners to test their modules during runtime, without having to compile their module into a .jar first.
Besides these convenience features, the efficiency of Ict 0.6