All the data in the Blockchain is public. The "public" keyword creates a getter for the variable, (a function that return the value). When you make it private the getter is not created but you can access the storage of the contract. web3 allows you to read the storage using:
see this for more info
Hope this helps
I think your best bet at this point in time would be to use zkSNARKs which has significantly more support overall through the ecosystem, although zkSNARKs operations aren't cheap.
While searching for ethereum ring signatures, the only recent implementation I could find was a the following reddit thread, although development appears to have stopped
This is absolutely true so far. There is no info about how to setup PoS Casper private network.
But here are some useful links:
Installing Casper on Ubuntu
Casper Pyethapp Development Environment Containers
By the way if you need to setup a PoS private network for work, Casper might not be the best option, because the implementation of ...
I only want the person who has access to the private key of the public key it was encrypted with to see the data. Is there a possible way to do it
Yes, you need to encrypt it before you send the data to the blockchain. Everything in the blockchain, including transactions, is public. So if you send the data in plaintext, anyone can see it.
At the moment I ...
Is it absolutely required to be in the first block? With some modifications to Geth you could theoretically apply the state changes at genesis. This would mean every node that has the genesis file you specified would have the contracts predeployed, similar to what Rob was referring to with Pegasys.
Yes, someone can see private values. Private simply tells contracts what they can and cannot read. People can extract the data from the private value.
Please see this thread. And also in the api for solidity it states:
"Everything you use in a smart contract is publicly visible, even local variables and state variables marked private."
This is what I do:
File NodeInit.bat (run once, or whenever you want to delete the DB and start from zero):
rd /s /q data\geth
call "C:\Program Files\Geth\geth.exe" --datadir=.\data init .\genesis.json
File NodeOpen.bat (run whenever you want to start the network):
cmd /c "title geth & "C:\Program Files\Geth\geth.exe"" ^
Everything that happens inside the blockchain is public information. So all the data you have is readable for anyone who knows how to access it.
The only way for you to hide some information is by encrypting it before it reaches blockchain (so somewhere in your backend). This way nobody can interpret the data without the right encryption key, but this also ...
According to documentation (haven't practice for a while)
--rpcaddr value HTTP-RPC server listening interface (default: "localhost")
You need to pass the address on witch one your rpc endpoint must be listenning. If I remember well, it corresponds to the IP address authorized to send commands.
By default, it is your localhost.
To allow everyone, ...
Unless you find JSON formated text file with keys such as "id", "cipher", "ciphertext", "salt"...etc, I don't think you would be able to recover. If you find it, you will be able to extract it via not just metamask but also other tools, assuming you know the correct password. You need either that or your mnemonic. Password is just missing information to ...
Assuming you have the source code for the contract in question, it's a two-step process:
Determine, from the source code, the location(s) in storage that you're interested in.
Call the eth_getStorageAt JSON-RPC method (perhaps multiple times) to retrieve the data.
Two of my blog posts might help:
Understanding Ethereum Smart Contract Storage explains how ...