Commit Graph

314 Commits

Author SHA1 Message Date
Pavel
fe52648103
Integrate async AquaVM into fluence-js (#88) 2021-10-20 22:20:43 +03:00
Pavel
727d59fb61
Documentation update (#83) 2021-09-27 22:11:35 +03:00
Pavel
a5cd6d5a49
Replace fromBytes in favor of fromEd25519SK in KeyPair class (#81)
* Replace fromBytes in favor of fromEd25519SK in KeyPair class
2021-09-24 17:19:28 +03:00
Pavel
1c457dd2cf
Export PeerStatus type from index.ts (#80) 2021-09-21 22:10:33 +03:00
folex
763e641fa2
KeyPair: add fromBytes, toEd25519PrivateKey (#78)
- fromBytes allows to pass any seed you want
- constructor takes PeerId (previously was empty and maybe private)
- toEd25519PrivateKey to complete the lifecycle.
2021-09-14 12:16:17 +03:00
Pavel
608506db9f
Refactor public API: put default peer API under Fluence facade (#72) 2021-09-10 19:21:45 +03:00
Pavel
6436cd5684
Update JS SDK API to the new version (#61)
* FluenceClient renamed to FluencePeer.
* Using Aqua compiler is now the recommended way for all interaction with the network, including services registration and sending requests
* Old API (sendParticle etc) has been removed
* Opaque seed format replaced with 32 byte ed25519 private key. KeyPair introduced
* Documentation update
2021-09-08 12:42:30 +03:00
Pavel
c7ab9d56ee
CI: fix --allow-same-version flag(#69) 2021-09-08 12:21:11 +03:00
Pavel
140c38eb93
CI: set release name to JS SDK (#68) 2021-09-08 12:04:52 +03:00
Pavel
eec581370d
Update base64-js version (#67) 2021-09-08 11:56:25 +03:00
Pavel
33d7406c55
Update CI workflow to tag-based one (#66) 2021-09-08 11:28:22 +03:00
folex
32e1ea4e04
Update avm to 0.14.3 (#65) 2021-08-27 20:02:55 +03:00
Pavel
ad83b51ce1
JS SDK 0.10.0 (#64)
BREAKING CHANGES: PROTOCOL_NAME is changed, AquaVM is updated to a new minor version
2021-08-24 18:37:20 +03:00
Mike Voronov
5da230cb05
Switch to crdt interpreter (#62) 2021-08-24 17:37:03 +03:00
folex
f67ca787a7
Update libp2p, multiaddr & peer-id libraries (#60) 2021-08-18 20:13:40 +03:00
Pavel
0b91712964
Fix doc links (#58) 2021-08-06 00:57:10 +03:00
Dima
7959016ecb
update avm to 0.10.5 (#57) 2021-06-10 17:32:15 +03:00
Pavel
cabbe89845
Fixed issue when a variable passed to Request flow could be undefined (#55) 2021-06-09 20:39:04 +03:00
Pavel
67a1f91961
Fix issue with avm logs not being displayed (#54) 2021-06-08 11:08:07 +03:00
Pavel
2e016e9b7a
fix "Op" service name case to "op" (#53) 2021-06-04 14:05:04 +03:00
Pavel
53385c556a
Implement handlers for built-in calls from avm (#52) 2021-06-03 20:11:09 +03:00
Pavel
c01c6478b7
Update error handling when dialing libp2p connecion (#51) 2021-06-03 15:29:12 +03:00
Dima
b5bdc5d6e5
update (#50) 2021-06-01 19:05:40 +03:00
Pavel
054a7bf094
Mass rename (#48)
* Update terminology and namings

* Use renamed to `avm` package
2021-05-18 09:53:12 +03:00
Pavel
9aa077eb4b
Update air (#47)
* Migrate to the new version of air-interpreter package

* Add pipeline with integration tests 

* Fix issues which prevented tests to finish normally
2021-05-12 00:01:44 +03:00
Pavel
2d46fd47f1
fix error prototype (#45) 2021-04-27 17:50:53 +03:00
Pavel
8c372cd0c8
Improvements (#44)
* Add more detailed information when the particle is sent to incorrect peers

* Throwing custom error in case of version incompatibility
2021-04-27 17:08:18 +03:00
Pavel
d84d9fd7ea
Opt out defaults (#43)
* Change the wat the withDefaults() words. Now it is "disable default injections" instead of "enable default injections"
2021-04-21 19:56:19 +03:00
folex
f9d7a1c875
Update AIR interpreter to 0.8.2 (#42) 2021-04-21 12:42:42 +03:00
Pavel
8ddccd3c60
Fix zero to empty object conversion error (#40) 2021-04-20 14:19:08 +03:00
Pavel
f14baeb618
Fix variable injection (#39) 2021-04-15 15:42:18 +03:00
Pavel
de0516f305
fixes (#38)
* Fix error message when an incorrect service has been called.

* Fix return type of the handler in registerServiceFunction
2021-04-13 17:04:36 +03:00
folex
480c8aa850
Allow ws transport (#37) 2021-04-13 15:11:52 +03:00
Pavel
15e645c2d5
Fixes (#35)
* Fix assignment in `withInjectedVariables` 

* Pin all dependencies to exact version

* Remove unused deps
2021-04-08 13:55:33 +03:00
Pavel
5355eeb152
Extract defaults (#34)
* Extracted default request flow builder behavior out of the constructor

* Remove init_peer_id variable, which stands in the way when building apps with aquamarine
2021-03-29 23:52:46 +03:00
Pavel
0ff10a25de
update aqua version (#33)
* Bump aquamarine version

* Add connection options
2021-03-25 21:33:27 +03:00
Pavel
f732a30eb8
Swapped secio with noise (#32)
Update libp2p-related packages and switch from secio to noise
2021-03-10 15:56:12 +03:00
Pavel
6013f623d4
Tidy up api (#31)
Tidy up api
2021-03-05 17:50:52 +03:00
Pavel
783913043e
fix relative paths in import statement (#30)
* Fix relative paths in import statement
* Fix types in builtins for better compatibility
2021-03-05 16:21:41 +03:00
Pavel Murygin
88d534e4a5 Checking if the particle is sent not to the relay which the client is connected to. If not an error is thrown 2021-03-04 14:51:49 +03:00
Pavel Murygin
89d42476a2 remove processing queue, merge ParticleProcessor logic into fluence client 2021-03-04 14:51:49 +03:00
Pavel
b0ed007399
Particle lifecycle (#21)
Complete rethinking and refactoring of the codebase.

The codebase basically consists these 5 moving parts now: 

1. Fluence client (and the Particle processor which might be merged with the client) - This part is responsible for initiating Request flows, managing existing requests flows (it keeps the queue of received particles), pulling right strings on request flows to update their state etc
2. Fluence connection - This part is responsible for connecting to network, sending\receiving particles
3. RequestFlow - This is where the state of particle execution process is kept. It is basically a state storage with some control levers to update the state. Each request flow contains some particle lifecycle methods and the AquaCallHandler where all callback logic is kept
4. RequestFlowBuilder - This is where requests are prepared by the user (the developer of the client application) before they are ready to be sent into the network.
5. AquaCallHandler - This is how interpreter callbacks are handled. It is very similar to express.js app and is made of middlewares. Aqua handler is the unified api for both callbacks for our Request flows and non-ours (i.e services that are expected to be called be other peers). See `AquaHandler.ts` for details
2021-03-03 22:01:05 +03:00
folex
77ca5502b2 set ttl to 0 2021-03-03 17:31:41 +03:00
folex
052a8a7f24
Do not use DataView (#28) 2021-03-03 17:27:00 +03:00
Pavel
c65c0afbee
Xor (#24)
* Wrapping scripts with xor

* Add function subscribeForErrors to handle errors
2021-02-25 18:36:10 +03:00
Pavel
619c8a6d6a
Update builtins to new version (#27)
* Update builtins to new version

* Running integration tests in docker container
2021-02-25 15:33:37 +03:00
Pavel
d65153e6de
Update interpreter (#26)
* Update interpreter version
2021-02-24 14:51:24 +03:00
Dima
3eacf708e6
handle errors on local particle call (#25) 2021-02-24 14:43:21 +03:00
Dima
c10cd1942a
Check if connection is available on creating a client (#23)
Check if connection is available on creating a client
2021-02-19 16:32:02 +03:00
Dima
78ed8ab46c
delete trust-graph (#22) 2021-02-19 12:21:13 +03:00