In order to deploy the contract on net(in my case testnet) I need to create an instance of the contract. In order to create an instance and deploy it I need 3 things: web3 library, abi and address of contract:

1 Answer
1

You need address and ABI to invoke a contract. Before invoking a contract you need to deploy it. You have only got the abi definition. You need to deploy the contract by letting it be mined and get the address. Use,

You don't need a address to deploy a contract, you just need to send a transaction with the contract details. Once the contract is deployed(after the transaction is mined) it will output the address which you can use to call the particular instance.

UPDATE-2:

You may deploy many instance of the same contract by sending transactions and they are stored at different addresses. You can use a particular instance using the respective address (eg: to call a function like setter in your case). Refer the following answer posted here.

Just like code can be in source form, or converted/compiled to
executable form, the same thing applies to contracts.

From source code, many copies of the executable form can be generated.

In source code form, a contract in Solidity is like a class in OOP
terms: it can be instantiated many times, and can be inherited from.

Making a contract executable, usually involves 2 steps:

converting the source to Ethereum Virtual Machine (EVM) bytecode
deploying the EVM to an Ethereum blockchain The same contract source
code or EVM can be deployed to a blockchain many times. Each instance
of a deployed contract has a unique address.

Ok,I'll try,thanks.Just last question: is the contract ok?I red somewhere it could be problem with string parameter
– Nick9214Sep 14 '17 at 16:43

No wait..I have a doubt..I need contract address to deploy my contract,but in order to have contract address first I have to deploy my contract??I am a little bit confused
– Nick9214Sep 14 '17 at 16:47