The blockchain-based KMS must be installed on each participating device and uniquely identified by an address (similar to the identifier for a Bitcoin wallet). Every peer on this Rinkeby Testnet must be pre-approved by a steward. It must be capable of generating SSH key pairs for devices and storing the public key on the blockchain as a transaction. When a user attempts to SSH to this device, the KMS must refer to the blockchain for the user’s public key and device; if the key is accurate, up to date and from the correct originating device (as identified by address), the connection is established.
The KMS must periodically compare its blockchain with that of its peers to obtain updates (installing and uninstalling keys as instructed) and identify fraudulent transactions (e.g., a device has more than one keypair assigned to it, a keypair is installed for an unknown peer, etc.).
The KMS on all participating devices must be able to continue to function if any single device fails.
There must also be one or more appointed wardens to take executive action if warranted (e.g., a new device is added and must be listed as a peer, or a device is stolen, and all the keys assigned to that device must be purged from the canonical blockchain).
Python => 3.8
Pip
Metamask wallet ( Wallet Address , Private Key of Wallet)
SSH agent
SSH key-gen
Windows
Click here to download.
Create / Login your MetaMask Wallet.
Create at least 2 wallet address.
Request for testnet ethereum at this website.
Enable SSH Agent if disabled using the following command in PowerShell terminal as Administrator.
Set-Service -Name ssh-agent -StartupType Manual
Start SSH Agent service.
Start-Service ssh-agent
Admin / Node text file to change accordingly to your wallet address and private key
Proceed to Remix on any browser.
Load the solidity code contract.sol onto Remix IDE
Make necessary changes to wallet address of the administrator machine
Compile the code with 0.87+commit
Change the environment to Injected Web3 with selected wallet
Deploy
Modify with new deployed contract address
Download project source code from github
pip install -r requirements.txt
python main_node.py
Download project source code from github
pip install -r requirements.txt
python main_peer.py
Download project source code from github
pip install -r requirements.txt
python main_admin.py