---
title: "మీ మొదటి స్మార్ట్ కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడం"
description: "ఎథీరియం టెస్ట్ నెట్‌వర్క్‌లో మీ మొదటి స్మార్ట్ కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడానికి ఒక పరిచయం"
author: "jdourlens"
tags:
  - స్మార్ట్ కాంట్రాక్ట్‌లు
  - Remix
  - Solidity
  - డిప్లాయ్ చేయడం
skill: beginner
breadcrumb: "మొదటి కాంట్రాక్ట్‌ను డిప్లాయ్ చేయండి"
lang: te
published: 2020-04-03
source: EthereumDev
sourceUrl: https://ethereumdev.io/deploying-your-first-smart-contract/
address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE"
---

ఎథీరియం బ్లాక్‌చైన్‌లో మీ మొదటి [స్మార్ట్ కాంట్రాక్ట్‌ను](/developers/docs/smart-contracts/) [డిప్లాయ్ చేయడానికి](/developers/docs/smart-contracts/deploying/) మరియు దానితో ఇంటరాక్ట్ అవ్వడానికి మీరు కూడా మా లాగే ఉత్సాహంగా ఉన్నారని నేను అనుకుంటున్నాను.

చింతించకండి, ఇది మన మొదటి స్మార్ట్ కాంట్రాక్ట్ కాబట్టి, మనం దీనిని [లోకల్ టెస్ట్ నెట్‌వర్క్‌లో](/developers/docs/networks/) డిప్లాయ్ చేస్తాము, కాబట్టి దీన్ని డిప్లాయ్ చేయడానికి మీకు ఎలాంటి ఖర్చు ఉండదు మరియు మీరు కోరుకున్నంతగా దీనితో ప్రయోగాలు చేయవచ్చు.

## మన కాంట్రాక్ట్‌ను రాయడం {#writing-our-contract}

మొదటి దశ [Remix ని సందర్శించి](https://remix.ethereum.org/) కొత్త ఫైల్‌ను సృష్టించడం. Remix ఇంటర్‌ఫేస్ ఎగువ ఎడమ భాగంలో కొత్త ఫైల్‌ను జోడించి, మీకు కావలసిన ఫైల్ పేరును నమోదు చేయండి.

![Adding a new file in the Remix interface](./remix.png)

కొత్త ఫైల్‌లో, మనం కింది కోడ్‌ను పేస్ట్ చేస్తాము.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.17;

contract Counter {

    // కౌంట్‌ల సంఖ్యను ఉంచడానికి అన్‌సైన్డ్ ఇంట్ రకానికి చెందిన పబ్లిక్ వేరియబుల్
    uint256 public count = 0;

    // మన కౌంటర్‌ను పెంచే ఫంక్షన్
    function increment() public {
        count += 1;
    }

    // కౌంట్ విలువను పొందడానికి అవసరం లేని గెట్టర్
    function getCount() public view returns (uint256) {
        return count;
    }

}
```

మీకు ప్రోగ్రామింగ్ అలవాటు ఉంటే, ఈ ప్రోగ్రామ్ ఏమి చేస్తుందో మీరు సులభంగా ఊహించవచ్చు. ఇక్కడ లైన్ బై లైన్ వివరణ ఉంది:

- లైన్ 4: మనం `Counter` పేరుతో ఒక కాంట్రాక్ట్‌ను నిర్వచిస్తాము.
- లైన్ 7: మన కాంట్రాక్ట్ 0 తో ప్రారంభమయ్యే `count` అనే పేరు గల ఒక అన్‌సైన్డ్ ఇంటిజర్‌ను నిల్వ చేస్తుంది.
- లైన్ 10: మొదటి ఫంక్షన్ కాంట్రాక్ట్ యొక్క స్థితిని సవరిస్తుంది మరియు మన వేరియబుల్ `count` ని `increment()` చేస్తుంది.
- లైన్ 15: రెండవ ఫంక్షన్ కేవలం స్మార్ట్ కాంట్రాక్ట్ వెలుపల `count` వేరియబుల్ విలువను చదవడానికి ఉపయోగపడే ఒక గెట్టర్ (getter). గమనించండి, మనం మన `count` వేరియబుల్‌ను పబ్లిక్‌గా నిర్వచించినందున ఇది అవసరం లేదు కానీ ఒక ఉదాహరణగా చూపబడింది.

మన మొదటి సాధారణ స్మార్ట్ కాంట్రాక్ట్ కోసం ఇంతే. మీకు తెలిసినట్లుగా, ఇది Java లేదా C++ వంటి OOP (ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్) భాషల నుండి వచ్చిన క్లాస్ లాగా కనిపిస్తుంది. ఇప్పుడు మన కాంట్రాక్ట్‌తో ప్రయోగాలు చేయడానికి సమయం ఆసన్నమైంది.

## మన కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడం {#deploying-our-contract}

మనం మన మొట్టమొదటి స్మార్ట్ కాంట్రాక్ట్‌ను రాసినందున, దానితో ప్రయోగాలు చేయడానికి ఇప్పుడు మనం దానిని బ్లాక్‌చైన్‌కు డిప్లాయ్ చేస్తాము.

[స్మార్ట్ కాంట్రాక్ట్‌ను బ్లాక్‌చైన్‌లో డిప్లాయ్ చేయడం](/developers/docs/smart-contracts/deploying/) అంటే వాస్తవానికి గ్రహీతలను పేర్కొనకుండా కంపైల్ చేయబడిన స్మార్ట్ కాంట్రాక్ట్ కోడ్‌ను కలిగి ఉన్న లావాదేవీని పంపడమే.

మనం ముందుగా ఎడమ వైపున ఉన్న కంపైల్ చిహ్నంపై క్లిక్ చేయడం ద్వారా [కాంట్రాక్ట్‌ను కంపైల్ చేస్తాము](/developers/docs/smart-contracts/compiling/):

![The compile icon in the Remix toolbar](./remix-compile-button.png)

ఆపై కంపైల్ బటన్‌పై క్లిక్ చేయండి:

![The compile button in the Remix solidity compiler](./remix-compile.png)

మీరు టెక్స్ట్ ఎడిటర్‌లో కంటెంట్‌ను సేవ్ చేసినప్పుడు కాంట్రాక్ట్ ఎల్లప్పుడూ కంపైల్ అయ్యేలా “Auto compile” ఎంపికను ఎంచుకోవచ్చు.

ఆపై "deploy and run transactions" స్క్రీన్‌కు నావిగేట్ చేయండి:

![The deploy icon in the Remix toolbar](./remix-deploy.png)

మీరు "deploy and run transactions" స్క్రీన్‌పైకి వచ్చిన తర్వాత, మీ కాంట్రాక్ట్ పేరు కనిపిస్తుందో లేదో ఒకటికి రెండుసార్లు తనిఖీ చేసి, Deploy పై క్లిక్ చేయండి. మీరు పేజీ ఎగువన చూడగలిగినట్లుగా, ప్రస్తుత పర్యావరణం “JavaScript VM”, అంటే మనం వేగంగా మరియు ఎలాంటి ఫీజులు లేకుండా పరీక్షించడానికి మన స్మార్ట్ కాంట్రాక్ట్‌ను లోకల్ టెస్ట్ బ్లాక్‌చైన్‌లో డిప్లాయ్ చేస్తాము మరియు ఇంటరాక్ట్ అవుతాము.

![The deploy button in the Remix solidity compiler](./remix-deploy-button.png)

మీరు “Deploy” బటన్‌ను క్లిక్ చేసిన తర్వాత, మీ కాంట్రాక్ట్ దిగువన కనిపించడాన్ని మీరు చూస్తారు. దాన్ని విస్తరించడానికి ఎడమవైపు ఉన్న బాణం గుర్తుపై క్లిక్ చేయండి, తద్వారా మనం మన కాంట్రాక్ట్ కంటెంట్‌ను చూస్తాము. ఇది మన వేరియబుల్ `counter`, మన `increment()` ఫంక్షన్ మరియు గెట్టర్ `getCounter()`.

మీరు `count` లేదా `getCount` బటన్‌పై క్లిక్ చేస్తే, అది వాస్తవానికి కాంట్రాక్ట్ యొక్క `count` వేరియబుల్ కంటెంట్‌ను తిరిగి పొందుతుంది మరియు దానిని ప్రదర్శిస్తుంది. మనం ఇంకా `increment` ఫంక్షన్‌ను కాల్ చేయనందున, అది 0 ని ప్రదర్శించాలి.

![The function button in the Remix solidity compiler](./remix-function-button.png)

ఇప్పుడు బటన్‌పై క్లిక్ చేయడం ద్వారా `increment` ఫంక్షన్‌ను కాల్ చేద్దాం. విండో దిగువన జరిగిన లావాదేవీల లాగ్‌లు (logs) కనిపించడాన్ని మీరు చూస్తారు. మీరు `increment` బటన్‌కు బదులుగా డేటాను తిరిగి పొందడానికి బటన్‌ను నొక్కినప్పుడు లాగ్‌లు భిన్నంగా ఉండటాన్ని మీరు గమనిస్తారు. ఎందుకంటే బ్లాక్‌చైన్‌లో డేటాను చదవడానికి ఎలాంటి లావాదేవీలు (రాయడం) లేదా ఫీజులు అవసరం లేదు. ఎందుకంటే బ్లాక్‌చైన్ స్థితిని సవరించడానికి మాత్రమే లావాదేవీ చేయాల్సి ఉంటుంది:

![A log of transactions](./transaction-log.png)

మన `increment()` ఫంక్షన్‌ను కాల్ చేయడానికి లావాదేవీని రూపొందించే ఇంక్రిమెంట్ బటన్‌ను నొక్కిన తర్వాత, మనం తిరిగి count లేదా getCount బటన్‌లపై క్లిక్ చేస్తే, count వేరియబుల్ 0 కంటే పెద్దదిగా ఉండటంతో మన స్మార్ట్ కాంట్రాక్ట్ యొక్క కొత్తగా అప్‌డేట్ చేయబడిన స్థితిని మనం చదువుతాము.

![Newly updated state of the smart contract](./updated-state.png)

తదుపరి ట్యుటోరియల్‌లో, [మీ స్మార్ట్ కాంట్రాక్ట్‌లకు ఈవెంట్‌లను ఎలా జోడించవచ్చో](/developers/tutorials/logging-events-smart-contracts/) మనం కవర్ చేస్తాము. ఈవెంట్‌లను లాగింగ్ చేయడం అనేది మీ స్మార్ట్ కాంట్రాక్ట్‌ను డీబగ్ చేయడానికి మరియు ఫంక్షన్‌ను కాల్ చేస్తున్నప్పుడు ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి అనుకూలమైన మార్గం.