typescript 7.0.2 is the native compiler and exports no JavaScript API, so ts-node, ts-jest and hardhat cannot read it. It comes in aliased as tsgo and does the typechecking; typescript stays on the 6 line for those tools in api, mpc and contracts. app keeps its own pin: ts-jest 27 there caps typescript below 5.0. The native compiler no longer pulls in every @types package implicitly, so api names node and jest in `types`, and mpc's express app carries the annotation the compiler asks for. api 1, mpc 1 and contracts 98 diagnostics before and after, identical on 6.0.3 and 7.0.2. Co-authored-by: Hanzo Dev <[email protected]>
Lux Teleport
Lux Teleport Protocol is comprised of Multi-Party Compute (MPC) nodes which perform oracle operations and MPC signature for the cross-chain bridge.
Features
Lux Teleport has the following features:
- Decentralized oracle operations using MPC
- Decentralized permissioning using MPC
- Zero knowledge transactions, signers don't know details about assets being teleported to and from supported chains.
Installation
Clone the repository on all signers.
git clone https://github.com/luxfi/teleport
Install rust and mongoDB on all nodes.
Run the installer file.
chmod 777 install.sh
./install.sh
Set up mongoDB and the Teleport data store.
pico /etc/mongod.conf
comment out the following:
security: authorization: enabled
mongod --config /etc/mongod.conf
mongo
use bridge
db.createUser(
{
user: "lux",
pwd: "your-secure-password",
roles: [ { role: "readWrite", db: "bridge" },
{ role: "read", db: "reporting" } ]
}
)
Stop mongod, uncomment:
security: authorization: enabled
Then restart mongodb.
mongod --config /etc/mongod.conf
You could also run mongod using pm2 as
pm2 mongod --config /etc/mongod.conf
Run Keygen
Manually do the following on all signers:
cd ./target/release/examples/
Start an SM server
./gg20_sm_manager
That will start an HTTP server on http://127.0.0.1:8000. Other parties will use that server in order to communicate with
each other. Note that communication channels are neither encrypted nor authenticated. In production, you must encrypt and
authenticate parties messages. Set up your own endpoint to do this. Add your signing manager to: "SigningManagers".
If you have a 3 party MPC node network, open 3 terminal tabs for each MPC TeleportNode. Run:
./gg18_keygen_client http://yourIP1:portNumber keys1.store./gg18_keygen_client http://yourIP1:portNumber keys2.store./gg18_keygen_client http://yourIP1:portNumber keys3.store
Each command corresponds to one party. Once keygen is completed, you'll have 3 new files:
keys1.json, keys2.json, lkeys3.json corresponding to local secret
share of each party.
Add these your your SettingsMPC.json under "KeyStore"
Setup an endpoint with NGINX to run your node. Adding additional teleport networks are created by updating SettingsMPC.json. This repo will update Settings.json with new chains.
Run the Lux Teleport node with:
npm run node
The Teleport App can be used to interact with this MPC network.