This project gathers all the small programs (smart-contracts) involved in managing the consensus mechanism for space traffic exchange of Conjunction Data Messages (CDMs), requests and thrustworthiness modeling and updates.
Visit the Space DAO dashboard to see current network activity (COMING SOON)
Here is a glossary of most important terms and acronyms:
- CCSDS: The Consultative Committee for Space Data Systems
- CDM: conjunction data message, see CCSDS Recomended Standard Blue Book. CDMs represent all information about conjunction between two space object dangerously getting closer.
- TCA: time of closest approach (when are these objects crossing each other)
- PC or Pc: probability of collision (it is used like an emergency score in the end)
- RSO: resident space object (technical word to name anything in space, from active satellites to debris to asteroids)
- space operators: part of the network users, space operators mainly benefit from CDMs built from consensus so their decision to maneuvers can be made in more confidence, and eventually less often.
- SSA providers: they are space monitoring services, group or companies, that respond to network requests for CDMs. Each CDM from providers are sent back to the consensus contract, upon each request.
- smart contract: fancy technical term to name "small online distributed programs". They are as smart as we make them and they are legally no contract until we would bind them with real world signatures. So consider these as online services you could interact with with account information you are solely own.
- third party stakeholders: we are preparing room for interactions with other stakeholders like space lawyers and insurers to have an incentivized effect on the business mechanics of the network.
Visit the Space DAO dashboard to see current network activity (COMING SOON)
We use the Hardat development environment to build, test and deploy this project.
To start a test network usin ganache (npm install -g ganache), use the following command:
ganache -d --chain.chainId 31337 --wallet.defaultBalance 50000000
Notes to install dependencies, compile and run tests:
npm install
npx hardhat help
npx hardhat node
npx hardhat test
REPORT_GAS=true npx hardhat test
Dedicated deployments would look like these, check this scripts out:
# npx hardhat run scripts/ConsensusS1/deploy.ts
# npx hardhat run scripts/ConsensusS2/deploy.ts
Before starting credentials.json
should be created. Duplicate the
credentials.sample.json
file, rename it credentials.json
and input the
public and private key that the user is calling from. So deployment and other
actions can sign transactions.
credentials.json
is in .gitignore to avoid being it shared.
Please nevertheless use a test private key during development.
Do the same for batch_authorise.json
with any public keys that you would like
to immediately authorise when calling scripts/quick_deploy.ts
.
A general overview of the current idea for architecture is given in the image below. The directory is split into ./contracts
for solidity smart contracts, ./scripts
for typescript scripts to call smart contracts, ./tests
for typescript tests to test the smart contracts and ./archived
for reference data and other code.
- Default Public Keys for Hardhat. They are also listed with the private keys in
./test/default_hardhat_key.json
.