Remote Access to the Parity Wallet (Parity UI) is explained in detail in the Wallet Remote Access section of the Parity docs.
Before trying any method it is important to first make sure that the time on both machines is in sync by going to http://time.is/
Now you have a few options:
The recommended way is using SSH Tunneling
Setup SSH server on the ...
Just npm install web3 locally. On my Mac machine the only issue then was the building of the scrypt package. You can add an install script to your package.json to build it locally:
"install": "[ -e node_modules/scrypt/build/Release/scrypt.node ] || docker run --rm -v $PWD:/data -w /data node:6 npm install scrypt"
Note: You need docker installed. Solution ...
You will need to have a connection to a node to deploy your smart contract, but this does not mean that you need to run your own node. You can choose to use a 3rd party ETH node service such as Alchemy or Infura with Truffle or your own ETH node. See this document on how to change your ETH node connection in Truffle. You will need to set your deployment ...
I've had experience with both and found that sometimes my web3 code would work perfectly with a geth node but then it would fail against Infura. This was about the only issue I found and in the long term if you are building more smart contracts you may as well invest in the knowledge of managing your own geth node.
I am taking this approach as some of my ...
MetaMask doesn't actually host any nodes! So if you want to write applications without the overhead of hosting your own node in the cloud, you can point your app to Infura. Checkout the site here: https://infura.io/.
You just need to make an account, then point your app to our endpoints. Basically all you need to do is replace http://localhost:8545 with ...
Answering my own question, here's what finally worked in my case. See this GitHub Repo for more details. It provides ansible playbooks to provision and control a private ethereum network on Amazon EC2 nodes.
two mining nodes
I have 2 mining nodes with a private EC2 ip address running. They are started with (more details ...)
% geth --nodiscover --mine --...
You can use an external API to have access to information from the Ethereum Blockchain. Some APIs you can use are EtherChain and EtherScan.
To send a transaction in a secure way, you will need to create the transaction by yourself, sign it, and then send the transaction to a node so it can propagate it for you.
The way to do this is to use a library such ...
Basically, you just have to write the JS code to interact with Web3js. It can be server-side (Node.js), as well as client-side. Check out the web3 doc for configuration instructions and some basic usage examples.
If you just want to display some ordinary stuff from your blockchain, you may go client-side way and write a couple of lines to fetch information.
The same concerns as with any centralization: single point of failure and (indirect) control over the network.
If AWS was to go down one day all the nodes would go with it. Even if Amazon wouldn't have direct access to the nodes it would have indirect access to them - through for example traffic control or VM control (or on whatever the nodes are running on)...
I haven't done it for a while, so hopefully, a kind spirit will chime in if I seem to be misleading you.
Mining on Ropsten is not very competitive. You can mine coins with CPU mining and I think you'll be successful with a free tier instance. Keep in mind that you might not be able to stay within the free tier limits if you run it 24/7.
CPU mining scales ...
If your ethereum node is running on a different VM from your web3 service (Django in this case), then you cannot use IPC. IPC is only available over the local file system.
Check out the WebsocketProvider or HTTPProvider, instead. Both of them can connect over a network.
Be security-conscious! Any time your node is available over a network, there is a risk ...
To connect to AWS instance via RPC you have to assign the public IP of that instance as the rpc address.
geth --rpc --rpcaddr "Public IP of AWS" --rpcport "8545" --rpccorsdomain "*" console
If it was behind any proxy server then you have to redirect the request from a proxy server to your AWS server through port forwarding.
Have a look at the JSONRPC docs:
--jsonrpc-port PORT Specify the port portion of the JSONRPC API server
--jsonrpc-interface IP Specify the hostname portion of the JSONRPC API
server, IP should be an interface's IP address, or
all (all ...
The peer communication happens on tcp and UDP ports 30303 by default.
TCP is used to exchange information data related to blockchain, like new blocks. And UDP is used for communication related to peers and neighbours.
So you should try opening 30303 for TCP and UDP.
Update: Open for ipv4.
As you say if your nodes are listening on the internet then other nodes would be able to communicate with yours. If they knew the genesis settings they could actually mine in your network, and if you have an open JSON-RPC port and they had gas on the network they could send transactions.
The solution is to restrict access at the network level, so your nodes ...
I have setup several nodes in AWS.
Launch an Ubuntu instance
When you have ssh'ed in and at the terminal type the following one by one
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
once you have that done you should be able to type: geth
I expect yo ...
You don't really need it in case you're just deploying contracts and interacting with it. You can migrate your contracts in the mainnet and use web3.js to call them from the webapp. All you need is your Contract ABI and the Contract address (which will be given to you after the deploy)
If your webapp doesn't add any specific functionality other than smart ...
The problem is not with the one line command, but rather with the installer itself. You can see it by running:
curl https://get.parity.io -Lk > installer.sh
to download the file and then by running
You will get the exact same problem. The problem is related to the fact that the website from which it gets the URLs to download the ...
after the blockchain has been initialized and has advanced past block 1, you need to follow raft.addPeer and admin.addPeer instructions as explained here: https://github.com/jpmorganchase/quorum/blob/master/docs/raft.md#initial-configuration-and-enacting-membership-changes
If you are still looking to build web3 on aws lambda, use a combination of serverless framework, serverless-plugin-scripts and docker to prebuild the node modules before deploying, more details here: web3 serverless
If anyone is still having issues with running web3 > 1.0.0 and you're using SAM local to test it, consider running sam build --use-container prior to executing the lambda with sam invoke local .
This will build and install any dependencies inside of a amazon linux container instead of building it locally.
Untested on my end. However, I think there is a reasonable chance the answer may be CORS. When your RPC client attempts to send a request, your geth may be replying that the response is coming from a different host (address vs. IP) than the one you are accessing your geth through. If this is the case, you'll need to set one of the CORS command line options.
ICMP port is closed by default on AWS instances. You need to enable it in a security group.
Here is more detailed information: https://stackoverflow.com/questions/21981796/cannot-ping-aws-ec2-instance
TCP and UDP in inbound rules should be accessible by anywhere:
Maybe it's an issue stemming from AWS. Have you looked into the permissions your Lambda function was given?
AWS Lambda executes your Lambda function on your behalf by assuming the role you provided at the time of creating the Lambda function. Therefore, you need to grant the role the necessary permissions that your Lambda function needs, such as ...
the short version (if you're on a trusted network and assuming you don't have any local firewalls running):
--jsonrpc-hosts all --jsonrpc-interface all
then you connect via (and change the IP obviously):
web3 = new Web3(new Web3.providers.HttpProvider("http://xxx.xxx.xxx.xxx:8545"));