I have started working in blockchain for the last few weeks. I have created a private blockchain in my system using geth and added peers by using admin.addPeer() command. I have also created an application that uses this blockchain. In my application, I have used web3 to connect to the blockchain from front-end and I have also written some smart contracts which controls the activities of that application. After all this, I have also written a smart contract(ERC Tokens) to create cryptocurrencies which is used for payments in that application. It works well when I hosted in my private network. But now I want to host it to another server so that we can use that application from anywhere. Is truffle an option?

Can anyone help me to do this? And I would also like to know the system requirements or architecture of the server where the blockchain applications has to be hosted and also how to connect peers to a network by using the public IP address instead of local IP address. As local IP can change according the network it has connected.

2 Answers 2


You mean that you want to host Ethereum node on server so that you can enable RPC and use the node. This is also cool idea. I have done this in AWS(amazon web services). This is most easiest way to interact with node globally without any concern.
I will share all the things that you have to do in aws. I did this for Titan private network - forked from go-ethereum. It is same for other and also for official go-ethereum .

Account in AWS
Basic understanding of Titan
Externally owned account (EOA)
Ethereum keystore file

Create ec2 instance:  
1. Launc ec2 instance   
2. Choose an Amazon Machine Image (AMI) ( Ubuntu Server 16.04 LTS (HVM )   
3. Choose an Instance Type ( t2.medium )   
4. Configure Security Group   
And launch.

Select and existing key pair or create a new key pair and Launch Instance. Save key pair in local computer. 

5. Connect to ec2 instance by ssh  e.g. ssh -i "titanaws.pem" [email protected]
(titanaws.pem is key to access to ubuntu instance in AWS.)

Setup Titan node: Building the source Building Geth (command line client) Install latest distribution of Go git clone https://github.com/gopal/golang-tools-install-script cd golang-tools-install-script bash goinstall.sh --64 or wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz
sudo tar -xvf go1.7.4.linux-amd64.tar.gz sudo mv go /usr/local
export GOROOT=/usr/local/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Clone the repository to a directory of your choosing:   
git clone https://github.com/RoseBay-Consulting/Titan.git  
Building geth requires Go and C compilers to be installed:   
sudo apt-get install -y build-essential golang   
sudo apt install make    
sudo apt install gcc   
cd Titan   
make geth   
Running Geth:  
Full node on the Titan network   
cd ~ Titan/build/bin/geth --titan console     

 We copy and paste the keystore file in ~/.titan/titan/keystore. An keystore file (stored in ~/.titan/titan/keystore) is an encrypted version of your unique private key that you will use to sign your transactions.  
The file should look something like this:  

If you want to use your own machine and access node then you have to configure static IP . May ISP will provide a specific port.

This may help you!!

  • Thank you Gopal for a detailed answer..... I gonna try this for sure.. :) Commented Jul 2, 2018 at 13:44

Truffle is just a framework for developing ethereum based decentralized application. You can host your application on IPFS. This link is useful for how you can host your decentralized application on IPFS. This link is useful for how to develop an application using truffle and how to deploy it on IPFS.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.