پیکربندی Tron node config
فایل config.conf گزینه های زیادی برای سفارشی سازی دارد. ما در اینجا موارد مهم را توضیح خواهیم داد که مربوط به Tron Witness node (TWN) یا Tron Full node (TFN) هستند.
net { type = mainnet type = testnet }
در این بخش انتخاب می کنید که در چه شبکه ای می خواهید باشید. شما می توانید بین mainnet و testnet انتخاب کنید. همانطور که از نامش پیداست، mainnet شبکه مربوط به تراکنش های اصلی است و testnet برای شکبه های آزمایشی است.
با شروع Odyssey-v3.2.2 یک نسخه جدید دیتابیس و چندین گزینه جدید مانند indexing معرفی شد. اگر ورژن روی 2 تنظیم شده باشد، سرویس های رابط RPC و HTTP در Full Node و Solidity Node را فعال می باشد.
مطالب مرتبط : تفاوت Solidity Node با Full Node
storage { # Directory for storing persistent data db.version = 2, db.directory = "database", index.directory = "index",
index فقط برای SolidityNode اعمال می شود. خاموش کردن index به طور قابل توجهی عملکرد بلوک همگام سازی SolidityNode را بهبود می بخشد. اگر از دو رابط getTransactionsToThis و getTransactionsFromThis استفاده نمی کنید، می توانید index را خاموش کنید.
index.switch = "off"
این آیتم پیکربندی برای استراتژی نوشتن دیتابیس استفاده می شود. نوشتن ناهمزمان به طور قابل توجهی عملکرد بلوک همگام سازی FullNode را بهبود می بخشد اما نوشته از حافظه پنهان بافر سیستم عامل پاک می شود. نوشتن همزمان “true” است، در غیر این صورت نوشتن ناهمزمان “false” است.
نکته مهم: اگر دستگاه کرش کند، ممکن است برخی از داده های اخیر از بین بروند. توجه داشته باشید که اگر فقط پردازش کرش کند (یعنی دستگاه راهاندازی مجدد نشود)، هیچ نوشتهای از بین نخواهد رفت.
db.sync = fals
این قسمت نتیجه تراکنش را کنترل می کند که در پایگاه داده TransactionHistory قرار گیرد. با خاموش کردن سوئیچ، نتیجه تراکنش در پایگاه داده TransactionHistory قرار نخواهد گرفت. اگر از رابط getransactioninfobyid استفاده نمی کنید، می توانید سوئیچ را خاموش کنید.
transHistory.switch = "on"
میتوانید تنظیمات این 14 قسمت دیتابیس را account, account-index, asset-issue, block, block-index, block_KDB, peers, properties, recent-block, trans, utxo, votes, witness, witness_schedule سفارشی سازی کنید. در غیر این صورت، تنظیمات دیتابیس در حالت پیشفرض میماند و دادهها در مسیر “output-directory” یا که توسط “-d” (“-output-directory”) تنظیم شده است، ذخیره میشوند. اگر دلیلی برای تغییر آن ندارید، آن را به حال خود رها کنید.
properties = [ // { // name = "account", // path = "storage_directory_test", // createIfMissing = true, // paranoidChecks = true, // verifyChecksums = true, // compressionType = 1, // compressed with snappy // blockSize = 4096, // 4 KB = 4 * 1024 B // writeBufferSize = 10485760, // 10 MB = 10 * 1024 * 1024 B // cacheSize = 10485760, // 10 MB = 10 * 1024 * 1024 B // maxOpenFiles = 100 // }, // { // name = "account-index", // path = "storage_directory_test", // createIfMissing = true, // paranoidChecks = true, // verifyChecksums = true, // compressionType = 1, // compressed with snappy // blockSize = 4096, // 4 KB = 4 * 1024 B // writeBufferSize = 10485760, // 10 MB = 10 * 1024 * 1024 B // cacheSize = 10485760, // 10 MB = 10 * 1024 * 1024 B // maxOpenFiles = 100 // }, ]
یکی از قسمت هایی که ممکن است نیاز به ویرایش داشته باشید قسمت node.discovery است. اگر پشت پراکسی هستید و در اجازه دادن به اتصالات ورودی مشکل دارید، باید آن را ویرایش کنید. آدرس IP خارجی و داخلی خود را در اینجا تنظیم کنید.
node.discovery = { enable = true persist = true bind.ip = "10.10.10.10" external.ip = "89.34.227.1" }
قسمت node.backup به شما این امکان را می دهد که دو witness node را به طور همزمان اجرا کنید.
مثال:
راهاندازی دو node به نام های A و B در یک سناریوی failover کار میکنند، زمانی که یکی از کار بیفتد، دیگری مسئولیت را بر عهده میگیرد. node witness اصلی شما node ای است که اولویت بالاتری دارد، یا اگر اولویت یکسانی داشته باشد، اولین node ای که تنظیم شده شروع به کار می کند. میتوانید هر تعداد نسخه پشتیبان را در این قسمت فهرست کنید، اما معمولاً هر (super representative) SR تعداد محدودی TWN یا TFN دارد. قطعاً نباید فراموش کنید که پورت بکاپ خود را در فایروال باز کنید.
برای تنظیم، فایل کانفیگ موجود در نود A را تغییر دهید تا آدرس IP پشتیبان نود B را شامل شود. و نود B شامل آدرس IP نود A باشد.
node.backup { port = 10001 priority = 8 members = [10.10.10.11] }
Trustnode
اگر یک نود Solidity را اجرا می کنید، باید آن را به یک full node قابل اعتماد وصل کنید. گره قابل اعتماد می تواند در یک ماشین تحت مجموعه ای از پورت های متفاوت اجرا شود. در Odyssey-v3.2.2 که در آن DB نسخه 2 معرفی شد و FullNode رابط RPC و HTTP را در FullNode و SolidityNode ارائه می دهد.
node { # trust node for solidity node # trustNode = "ip:port" trustNode = "127.0.0.1:50051"
# expose extension api to public or not walletExtensionApi = true
PORT در Tron node config
این همان چیزی است که ما از آن به عنوان “درگاه ارتباطی” یاد می کنیم. به طور پیشفرض این روی 18888 تنظیم شده است، اما برای مثال اگر دو گره را روی یک ماشین اجرا میکنید، میتوانید آن را تغییر دهید. شما باید این پورت را برای یکی از آن گره ها تغییر دهید. همچنین استفاده از یک پورت غیر استاندارد به دلیل اسکن پورت های شناخته شده، یک عمل امنیتی خوب است.
listen.port = 18888
پورت HTTP TRON
پورت http پیشفرض در FullNode 8090 است. پورت پیشفرض http در solidityNode 8091 است.
http { fullNodePort = 8090 solidityPort = 8091 }
rpc
پورت rpc (grpc) به دستورالعمل های API گوش می دهد تا اجرا شود. اگر چندین گره را روی یک ماشین اجرا می کنید، باید این پورت را برای همه آن گره ها به جز یکی از آن ها تغییر دهید. همچنین استفاده از یک پورت غیر استاندارد به دلیل اسکن پورت های شناخته شده، یک عمل امنیتی خوب است. در زیر تنظیمات تنظیم عملکرد نیز وجود دارد که بسته به منابع موجود می توانید آنها را تنظیم کنید.
rpc { port = 50051 solidityPort = 50061 # Number of gRPC thread, default availableProcessors / 2 # thread = 16 # The maximum number of concurrent calls permitted for each incoming connection # maxConcurrentCallsPerConnection = # The HTTP/2 flow control window, default 1MB # flowControlWindow = # Connection being idle for longer than which will be gracefully terminated maxConnectionIdleInMillis = 60000 # Connection lasting longer than which will be gracefully terminated # maxConnectionAgeInMillis = # The maximum message size allowed to be received on the server, default 4MB # maxMessageSize = # The maximum size of header list allowed to be received, default 8192 # maxHeaderListSize = }
seed.node
گره های جدید به دنبال اتصال به این لیست از گره های اولیه برای ایجاد یک اتصال اولیه شبکه هستند. اگر تازه شروع می کنید، نیازی به تغییر این بلوک نیست. اگر از قبل سرور دیگری با زنجیره کامل دارید، می توانید آن را در اینجا وارد کرده و از آن همگام سازی کنید.
seed.node = { # List of the seed nodes # Seed nodes are stable full nodes # example: # ip.list = [ # "ip:port", # "ip:port" # ] ip.list = [ "54.236.37.243:18888", "52.53.189.99:18888", "18.196.99.16:18888", "34.253.187.192:18888", "52.56.56.149:18888", "35.180.51.163:18888", "54.252.224.209:18888", "18.228.15.36:18888", "52.15.93.92:18888", "34.220.77.106:18888", "13.127.47.162:18888", "13.124.62.58:18888", "13.229.128.108:18888", "35.182.37.246:18888", "34.200.228.125:18888", "18.220.232.201:18888", "13.57.30.186:18888", "35.165.103.105:18888", "18.184.238.21:18888", "34.250.140.143:18888", "35.176.192.130:18888", "52.47.197.188:18888", "52.62.210.100:18888", "13.231.4.243:18888", "18.231.76.29:18888", "35.154.90.144:18888", "13.125.210.234:18888", "13.250.40.82:18888", "35.183.101.48:18888"
Active nodes
active.node = [ # Active establish connection in any case # Sample entries: # "ip:port", # "ip:port" ]
Trusted Nodes
trust.node = [ # Passive accept connection in any case # Sample entries: # "ip:port", # "ip:port" ]
localwitness
در اینجا می توانید کلید خصوصی خود را برای یک گره شاهد قرار دهید. این نسخه امنیت کمتری دارد.
localwitness = [650950B193DDDDB35B6E48912DD28F7AB0E7140C1BFDEFD493348F02295BD812]
localwitnesskeystore
این یک فایل .json است که کلید خصوصی رمزگذاری شده را در خود نگه می دارد. شما باید این فایل را در همان دایرکتوری برنامه (~/java-tron/) قرار دهید. وقتی برنامه را از این طریق راه اندازی می کنید، از شما رمز عبور می خواهد.
localwitnesskeystore = [ "localwitnesskeystore.json" ]
این برای شبکه آزمایشی تنظیم شده است که شما یک شبکه آزمایشی خصوصی را ایجاد می کنید.
block = { needSyncCheck = true maintenanceTimeInterval = 21600000 proposalExpireTime = 259200000 // 3 day: 259200000(ms) }
ورودی های مرتبط با TVM
این زمینه ها به قراردادهای هوشمند و نحوه اجرای آن توسط TVM مربوط می شود. از آنجایی که در پروتکل شبکه میدان موج، هم قرارداد استقرار و هم قرارداد فراخوانی نیاز به مصرف منابع مربوطه (حافظه، CPU، ذخیره سازی و غیره) دارند، توصیه می شود که توسعه دهندگان شبکه خصوصی خود را برای اشکال زدایی و آزمایش قرارداد هوشمند بسازند. پس از تایید درستی قرارداد سپس قرارداد را در شبکه آزمایشی و بعد شبکه اصلی توسعه دهید.
به عنوان یک توسعه دهنده، اگر می خواهید از درخواست با ثبات پشتیبانی کنید، باید فایل پیکربندی config.conf را پر کنید: supportConstant = true، پیش فرض false است.
دو مورد دیگر، minTimeRatio، دوره زمانی است که قرارداد تأیید می شود تا زمانی که تراکنش قرارداد هوشمند به پایان می رسد. maxTimeRatio دوره زمانی است که قرارداد تأیید می شود تا زمانی که تراکنش قرارداد هوشمند تایید نشده باشد .
vm = { supportConstant = false minTimeRatio = 0.0 maxTimeRatio = 5.0 }
این ورودی مربوط به فعال سازی TVM است که توسط مجموع SR Tron ها رای داده شده است.
committee = { allowCreationOfContracts = 0 //mainnet:0 (reset by committee),test:1 }
اکنون می توانید سطح لاگ ها را تغییر دهید و بین TRACE، DEBUG، INFO، WARN و ERROR یکی را انتخاب کنید.
log.level = { root = "INFO" // TRACE;DEBUG;INFO;WARN;ERROR }
مقاله ای که خواندید مربوط به Tron node config بود .