Decentralized network for smart storage
Phantasma implements a decentralized content distribution system running on the blockchain, with strong emphasis on privacy and security.
To learn more about Phantasma, please read the White Paper.
Component | Description | Status | Percentage |
---|---|---|---|
Chain Core | eg: accounts, transactions, blocks | In development | 95% |
Wallet | CLI wallet | In development | 95% |
VM | Virtual machine to run smart contracts | In development | 95% |
Smart Contracts | eg: language features, compilers | In development | 80% |
Economy | Tokens / NFT | In development | 95% |
Network | P2P communication | In development | 85% |
Consensus | Distributed consensus for nodes | In development | 85% |
Scalabilty | Side-chains / Channels | In development | 80% |
Relay | Off-chain relay | In development | 60% |
Storage | Distributed storage | In development | 90% |
API | RPC api for nodes | In development | 90% |
Platform | Status |
---|---|
.NET Framework | Working |
.NET Core | Working |
Unity | Working |
Xamarin / Mobile | Working |
C++ | Working |
Mono | Working |
UWP | Untested |
To install Phantasma SDK to your project, run the following command in the Package Manager Console:
PM> Install-Package Phantasma
To build Phantasma on Windows, you need to download Visual Studio 2017, install the .NET Framework 4.7 Developer Pack and the .NET Core SDK.
If you need to develop on Linux or macOS, just install the .NET Core SDK.
For more information about how to build dApps for Phantasma, please read the documentation.
To effectively debug Phantasma.Node
, follow the steps outlined below:
-
Tendermint Executable:
- To debug
Phantasma.Node
, it's essential to have thetendermint
executable. - Download it from this URL: Tendermint v0.34.21 Release.
- Place the downloaded executable inside the path:
/path/to/phantasma-ng/Phantasma.Node/src/bin/Debug/net6.0/tendermintFile
.
- To debug
-
Configuration Settings:
- In the
config.json
file, ensure that you specify the path to the folder mentioned above and thetendermint
executable. - You can find an example configuration in the
Phantasma.Node/src
directory.
- In the
-
Reset the Blockchain:
- Delete the
Storage
folder. - Remove the
Storage
folder located at/path/to/phantasma-ng/Phantasma.Node/src/bin/Debug/net6.0/
. - Remove the
data
folder found inside/path/to/phantasma-ng/Phantasma.Node/src/bin/Debug/net6.0/tendermintFile
. - Navigate to the
DOCKER
folder using a terminal and execute the script:./fix-storage.sh
. This will reset the blockchain. - An easy way to do the deployment and reset in on step is to run this command:
cd DOCKER && ./fix-storage.sh || cd .. && ./testnet-startup.sh
.
- Delete the
-
Edit Necessary Files for Protocol Version:
- In
Phantasma.Business/src/Blockchain/Nexus/Nexus.cs
:- Update the value of
DomainSettings.Phantasma30Protocol
toDomainSettings.LatestKnownProtocol
at lines 937, 961, and 978.
- Update the value of
- In
Phantasma.Node/src/ABCIConnector.cs
:- Update the value on line 420 from
uint version = DomainSettings.Phantasma30Protocol;
touint version = DomainSettings.LatestKnownProtocol;
.
- Update the value on line 420 from
- In
-
Run Node in Editor:
- If you intend to run the node in an editor like Rider or Visual Studio for debugging purposes:
- Edit the
DOCKER/wrapper-testnet.sh
file. - Comment out line 28.
- Edit the
- If you intend to run the node in an editor like Rider or Visual Studio for debugging purposes:
You can contribute to Phantasma with issues and PRs. Simply filing issues for problems you encounter is a great way to contribute. Contributing implementations is greatly appreciated.
The Phantasma project is released under the MIT license, see LICENSE.md
for more details.
Project | Description | Status | Percentage |
---|---|---|---|
Phantasma Wallet | Cross platform Phantasma wallet | 2 Available | 100% |
Phantasma Explorer | Block explorer for visualizing Phantasma chain data | Complete | 100% |
Phantasma Node | Phantasma node deployment | In development | 90% |
Phantasma SDK | Software development kit | In development | 60% |
Phantasma Link | Browser extensions for interacting with Phantasma dApps | Complete - PhantasmaLink | 100% |
Phantasma Compiler | Phantasma smart contract compiler for high-level languages | In development | 30% |
Phantasma Assembler | Phantasma smart contract assembler for low-level instructions | In development | 90% |
Nachomen | Phantasma-based video game | In development | 95% |