Expressions of Peace are sincere ways of resiliently, simply, expressing peace, being the core civil component of an undeniable, resilient World Peace.
They are extending the Freedom of Expression. Via the experiencing and "using" of this emerging human right, we'll be sharing equal significance on making a world peace.
Introducing peer-to-peer diplomacy:
Peers (stakeholders) being individuals, states, NGOs, Corporations (last two are optional but probably necessary in the years ahead).
Below was the solution design that started with NFTs. That evolved in the time between February 2022 and August 2022: From having, to being.
Now, it's changed to a sort of points of truth (multiple versions of social contracts).
This tool's purpose is making a World Peace observable and sustainable.
Right now, it is based on a very simple contract, where only the last expression written to that contract is stored in the contract, as a string field. (needs safety in size of string, listed as feature request here: demo-verse#2
First contract deployed at the end of July, to Rinkeby network. https://rinkeby.etherscan.io/address/0x6d584295790d2c9f7f2d4249b6caebc15b1da682
As of 9.8.2022 we've made a hard switch to Goerli network since Rinkeby's faucet was not working. However will bring it back as multi-chain support soon.
https://goerli.etherscan.io/address/0xe563950e3d97c1cf11665163d4b14ead092c503c
One can simply check transaction hashes to display each expression made with each set operation on the contract.
For example, this transaction: https://rinkeby.etherscan.io/tx/0xa7df107d235becf0d5d8c891c8a8d5be01eff05a406b1b330549fbbb23dc69c2
to try it yourselves.
for an any transaction, click to their tx hash and go to its page. go below the page and click to see more
..
at the end, you'll see a window of Input data.
There's a button for decode input data
. click to that, then you can see it as a readable, string.
Of course, we'll be doing all this within the dapp :)
Hope this gives a hint for what's next, it is acknowledgements.
We've found that easiest way is referring/quoting from another expression, with its transactionHash on the ledger.
Special thanks to @ChristianChiarulli for open sourcing their web3 knowledge, stack and especially well use of the ethers library on this repo, resulting we decided building on top of that code, separating hardhat logic to another repository for now, to be added soon.
Bests, in Peace
- Solidity (To write our smart contract)
- React (Create our frontend)
- Metamask (Web Wallet that will allow us to interact with the ethereum blockchain)
- Ethers (web3 library for interacting with the blockchain and our smart contract)
Before getting started make sure you have a web wallet installed, I recommend Metamask. It is essentially just a browser extension that will allow us to interact with the ethereum blockchain. Just follow the instructions provided in the link to install and make sure not to use the same seed phrase for development for real ethereum/money.
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0 <0.9.0;
contract ExpressionOfPeace {
string current_expression;
constructor(string memory _expression) {
current_expression = _expression;
}
function set(string memory _expression) public {
current_expression = _expression;
}
function get() public view returns (string memory) {
return current_expression;
}
}
This contract is very simple. When the contract is deployed it is instantiated with a value called current_expression
, after deploying the contract you have the ability to get
the data or set
the data.
to install dependencies and get the project locally up and running, execute the following command on your shell:
npm install && npm start