এফএমজেড পরিমাণঃ ক্রিপ্টোকারেন্সি বাজারের সাধারণ চাহিদা ডিজাইন উদাহরণ বিশ্লেষণ (২)

লেখক:ছোট্ট স্বপ্ন, তৈরিঃ ২০২৩-১২-২৪ 22:24:58, আপডেটঃ ২০২৩-১২-২৫ ১৭ঃ১০ঃ৫৬

img

পূর্ববর্তী নিবন্ধে পাঠকের মন্তব্যের জন্য, একটি প্রোগ্রামের উদাহরণ প্রয়োজন যা চুক্তি অ্যাকাউন্টের স্থানান্তরকে পর্যবেক্ষণ করে।

ক্রিপ্টোকারেন্সি এক্সচেঞ্জগুলি প্রতিদিন প্রচুর পরিমাণে লেনদেন পরিচালনা করে, যার মধ্যে রয়েছে বিভিন্ন মানিব্যাগের মধ্যে সম্পদ স্থানান্তর। এই স্থানান্তরগুলি রিয়েল-টাইমে পর্যবেক্ষণ করা ব্যবসায়ী এবং বিকাশকারীদের জন্য গুরুত্বপূর্ণ। এই নিবন্ধটি একটি জাভাস্ক্রিপ্ট কোড নিয়ে আলোচনা করবে যা একটি ক্রিপ্টোকারেন্সি এক্সচেঞ্জের সাম্প্রতিক সম্পদ স্থানান্তরগুলি পর্যবেক্ষণ করার লক্ষ্যে তৈরি করা হয়েছে এবং এর মূল উপাদানগুলি নিয়ে আলোচনা করবে।

চাহিদা বিশ্লেষণ

বিএনএ এক্সচেঞ্জের নথিপত্রের মাধ্যমে দেখা গেছে যে একটি স্ক্র্যাপ ইতিহাস ইন্টারফেস রয়েছে যা সমস্ত স্ক্র্যাপ তথ্য অনুসন্ধান করতে পারে। যেহেতু আমরা কেবল সম্ভাব্য স্ক্র্যাপ রেকর্ডগুলি পর্যবেক্ষণ করি, তাই আমাদের সমস্ত স্ক্র্যাপ ইতিহাস পাওয়ার দরকার নেই। আমাদের কেবলমাত্র নির্দিষ্ট ফ্রিকোয়েন্সির ভিত্তিতে সাম্প্রতিক সময়ের একটি নির্দিষ্ট পরিসরের মধ্যে স্ক্র্যাপ রেকর্ডগুলি পরীক্ষা করতে হবে। নতুন স্ক্র্যাপ রেকর্ডগুলি আবিষ্কৃত হলে আপডেট করা হবে।

এই ইন্টারফেসটি ব্যবহার করুনঃ

// GET /sapi/v1/asset/transfer type, size : 100

তাহলে কিভাবে নতুন স্ক্র্যাপ রেকর্ড পরীক্ষা করা যায়? বিনয়নের ডকুমেন্টেশন দেখার পর দেখা যায় যে এই ইন্টারফেসের ফিরে আসা ডেটাতে সময়সীমা রয়েছে, সময়সীমা ব্যবহার করে বিচার করা খুব সহজ, যতক্ষণ না বর্তমান রেকর্ডের বৃহত্তম সময়সীমার চেয়ে বড় রেকর্ড থাকে, ততক্ষণ নতুন স্ক্র্যাপ রিভার্সনের ঘটনা ঘটেছে। এটি ট্রিগার করতে পারে।

/sapi/v1/asset/transferইন্টারফেস প্রতিবার সর্বোচ্চ ১০০টি ডেটা অনুরোধ করে, এই সনাক্তকরণটি নিম্ন-ফ্রিকোয়েন্সির জন্য সমস্যা সৃষ্টি করবে না, যদি না একটি সনাক্তকরণ শেষ হয়ে যায় এবং পরবর্তী সনাক্তকরণ শুরু হওয়ার আগে অ্যাকাউন্টে ১০০ টিরও বেশি স্থানান্তর অপারেশন থাকে।

অবশ্যই বাস্তবে ডিজাইন করার সময় আরও অনেক বিবরণ রয়েছে, উদাহরণস্বরূপ ডকুমেন্টেশনটি দেখুন এবং আপনি দেখতে পাবেন যে অনেকগুলি ব্রেকিং দিক রয়েছে, তাই আমরা প্রতিটি ব্রেকিং দিকের উপর নজর রাখতে চাই।var dicType = {...}এটি সব দিকনির্দেশনা পরিচালনা করবে।

আমরা একটি স্ট্যাটাস ব্রেক ফর্ম ব্যবহার করেছি, যা নীতিমালা ইন্টারফেসে সাম্প্রতিক পাঁচটি পয়েন্টের রিভার্সালের তথ্য প্রকাশ করে, তাই আমরা একটি তৈরি করেছি, যার নামঃmonitorআপনি অবশ্যই সীমাহীন রেকর্ড ডিক্রিপশন তথ্য রাখতে পারবেন না, তাই আমরা প্রতি ডিক্রিপশন দিকের জন্য মাত্র ১০০টি রেকর্ড বজায় রাখি এবং ১০০টির বেশি হলে অকাল রেকর্ড মুছে ফেলা হয়।

কোড প্যাটার্ন

function getRecentTransferHistory(TransType, typeDesc) {
	// GET /sapi/v1/asset/transfer type, size : 100
    
    var rows = null 
    var ret = exchange.IO("api", "GET", "/sapi/v1/asset/transfer", `type=${TransType}&size=100`)
    Log("/sapi/v1/asset/transfer" + `type=${TransType}&size=100`)
    if (ret && typeof(ret.rows) != "undefined" && Array.isArray(ret.rows)) {
        rows = ret.rows
    } else if (ret && typeof(ret.total) != "undefined" && ret.total == 0) {
        rows = []
    } else {
    	Log(TransType, typeDesc, "查询失败", ret)
    }
    
    return rows
}

var monitor = {}
function monitorTransfers() {
    var dicType = {
        "MAIN_UMFUTURE": "现货钱包 --> U本位合约钱包",
        "MAIN_CMFUTURE": "现货钱包 --> 币本位合约钱包",
        "UMFUTURE_MAIN": "U本位合约钱包 --> 现货钱包",
        "UMFUTURE_MARGIN": "U本位合约钱包 --> 杠杆全仓钱包",
        "CMFUTURE_MAIN": "币本位合约钱包 --> 现货钱包",
        "MARGIN_UMFUTURE": "杠杆全仓钱包 --> U本位合约钱包",
        "MARGIN_CMFUTURE": "杠杆全仓钱包 --> 币本位合约钱包",
        "CMFUTURE_MARGIN": "币本位合约钱包 --> 杠杆全仓钱包",
        "FUNDING_UMFUTURE": "资金钱包 --> U本位合约钱包",
        "UMFUTURE_FUNDING": "U本位合约钱包 --> 资金钱包",
        "FUNDING_CMFUTURE": "资金钱包 --> 币本位合约钱包",
        "CMFUTURE_FUNDING": "币本位合约钱包 --> 资金钱包",
        "UMFUTURE_OPTION": "U本位合约钱包 --> 期权钱包",
        "OPTION_UMFUTURE": "期权钱包 --> U本位合约钱包",
        // 统一账户
        "MAIN_PORTFOLIO_MARGIN": "现货钱包 --> 统一账户钱包",
        "PORTFOLIO_MARGIN_MAIN": "统一账户钱包 --> 现货钱包"
    }
    
    Log("开始检测")
    _.each(dicType, function(v, k) {
        var rows = getRecentTransferHistory(k, v)
        var maxTS = 0
        _.each(rows, function(row) {
            if (typeof(monitor[k]) == "undefined") {
            	monitor[k] = {"transType": k, "typeDesc": v, "recentRecords": [], "lastTS": 0}            	
            }

            if (row["timestamp"] > monitor[k]["lastTS"]) {
                monitor[k]["recentRecords"].push(row)
                
                if (monitor[k]["lastTS"] != 0) {
                	Log("检测到新增划转记录", k, v, row, "#FF0000")
                }                
            }
            maxTS = Math.max(maxTS, row["timestamp"])     
        })
        if (rows && rows.length == 0) {
            return 
        }
        monitor[k]["lastTS"] = maxTS

        var sortedArrayAscending = monitor[k]["recentRecords"].slice().sort((a, b) => a.timestamp - b.timestamp)
        monitor[k]["recentRecords"] = sortedArrayAscending

        if (monitor[k]["recentRecords"].length > 100) {
        	monitor[k]["recentRecords"].shift()
        }
        Sleep(1000)
    })
    Log("开始结束")
}


function main() {
    LogReset()
    while (true) {
        monitorTransfers()

        var tbls = []
        _.each(monitor, function(v, k) {
        	var tbl = {
        		"type": "table", 
        		"title": v["typeDesc"], 
        		"cols": ["asset", "amount", "status", "tranId", "time"], 
        		"rows": []
        	}

            var arr = v["recentRecords"].slice().sort((a, b) => b.timestamp - a.timestamp)
            for (var i = 0; i < arr.length; i++) {
            	if (i < 5) {
            		tbl["rows"].push([arr[i]["asset"], arr[i]["amount"], arr[i]["status"], arr[i]["tranId"], _D(arr[i]["timestamp"])])
            	}            	
            }
            tbls.push(tbl)
        })        

    	LogStatus(_D(), "\n", "`" + JSON.stringify(tbls) + "`")
    	Sleep(1000 * 30)
    }
}

কোড সংক্ষিপ্ত বিবরণঃ

প্রদত্ত জাভাস্ক্রিপ্ট কোডটি বেশ কয়েকটি ফাংশন নিয়ে গঠিত যা সাম্প্রতিক সম্পদ স্থানান্তর পর্যবেক্ষণের জন্য একটি সিস্টেম গঠন করে। আসুন প্রধান উপাদানগুলিকে ভেঙে ফেলিঃ

  • getRecentTransferHistory ফাংশনঃ

    উদ্দেশ্যঃ নির্দিষ্ট পরামিতি অনুযায়ী এক্সচেঞ্জ এপিআই থেকে সাম্প্রতিক সম্পদ স্থানান্তর ইতিহাস পেতে। প্যারামিটারঃ TransType (পরিবর্তন টাইপ), typeDesc (টাইপ বর্ণনা) । এপিআই এন্ডপয়েন্টঃ /sapi/v1/asset/transfer.

  • monitorTransfers ফাংশনঃ

    উদ্দেশ্যঃ পূর্বনির্ধারিত বিভক্ত প্রকারের মাধ্যমে যেতে, সাম্প্রতিক বিভক্ত ইতিহাস অনুসন্ধান করতে, এবং কোনও নতুন বিভক্ত রেকর্ড করতে। DicType ব্যবহার করে একটি সহজ-পঠনযোগ্য বিবরণে স্ক্র্যাপ টাইপ ম্যাপ করুন। প্রতিটি প্রকারের সর্বশেষ স্ক্র্যাপ ট্র্যাক করার জন্য মনিটর অবজেক্ট আপডেট করুন।

  • main ফাংশনঃ

    উদ্দেশ্যঃ একটি সীমাহীন চক্র চালানো, ক্রমাগত পর্যবেক্ষণ, এবং সর্বশেষ তথ্য প্রদর্শন করা। monitorTransfers ফাংশনটি নিয়মিত ব্যবহার করুন। প্রতিটি টার্নওভার টাইপের জন্য একটি টেবিল তৈরি করুন, যার মধ্যে সম্পদ, পরিমাণ, অবস্থা, লেনদেনের আইডি এবং সময়সীমার মতো কলাম রয়েছে।

মূল বৈশিষ্ট্যঃ

  • ডায়নামিক স্ক্র্যাপ টাইপ ম্যাপিংঃ

    ডিকটাইপ (dicType) ব্যবহার করে কোডটি একটি বর্ণনামূলক নামের সাথে ডিকটাইপ টাইপ ম্যাপ করে, যা প্রতিটি ডিকটাইপের বৈশিষ্ট্যের জন্য একটি স্পষ্ট বিবরণ প্রদান করে।

  • রিয়েল টাইম নজরদারিঃ

    এই সিস্টেমটি ক্রমাগত নতুন স্ক্র্যাপগুলি পরীক্ষা করে, মনিটর অবজেক্টগুলি আপডেট করে এবং সনাক্ত করা কোনও পরিবর্তন রেকর্ড করে।

  • এই তথ্যগুলি দেখায়ঃ

    ট্যাবলেটগুলি ব্যবহার করে প্রতিটি ধরণের স্থানান্তরিত ডেটা উপস্থাপন করা হয়, যার মধ্যে সম্পত্তি, পরিমাণ, অবস্থা, লেনদেনের আইডি এবং সময়সীমার মতো সম্পর্কিত বিবরণ অন্তর্ভুক্ত রয়েছে।

  • সাম্প্রতিক ইতিহাস পরিচালনাঃ

    সংক্ষিপ্ত এবং সময়মত প্রদর্শন নিশ্চিত করার জন্য প্রতিটি ধরণের জন্য সর্বশেষ স্ক্র্যাপ রেকর্ডের একটি স্লো লিস্ট রাখা হয়।

রিয়েল ডিস্ক টেস্ট

ম্যানুয়ালি একটি টার্ন আউট করা হয়েছে, এবং প্রোগ্রামটি টার্ন আউট অপারেশন সনাক্ত করেছে।

img

img

END:

প্রদত্ত জাভাস্ক্রিপ্ট কোডটি ক্রিপ্টোকারেন্সি এক্সচেঞ্জে সাম্প্রতিক সম্পদ স্থানান্তরগুলি পর্যবেক্ষণের জন্য একটি শক্তিশালী সমাধান সরবরাহ করে। এর গতিশীল এবং বাস্তব-সময়ের বৈশিষ্ট্যগুলি এটিকে ব্যবসায়ী এবং বিকাশকারীদের জন্য একটি মূল্যবান সরঞ্জাম করে তোলে যারা বিভিন্ন ওয়ালেটের মধ্যে সম্পদের গতিবিধি বোঝার চেষ্টা করে। এই কোডটি নির্দিষ্ট প্রয়োজনের উপর ভিত্তি করে সংশোধন এবং কাস্টমাইজ করা যায়, যারা তাদের ক্রিপ্টোকারেন্সি ট্রেডিং কৌশলকে শক্তিশালী করতে চান বা অতিরিক্ত পর্যবেক্ষণ বৈশিষ্ট্য বিকাশ করতে চান তাদের জন্য একটি শক্ত ভিত্তি সরবরাহ করে।

এই নিবন্ধটি একটি নকশা ধারণা প্রদান করে এবং আপনার ক্রিপ্টোকারেন্সি কর্মজীবন উভয় তথ্যপূর্ণ এবং সফল হতে পারে!


আরো

98K-ব্যাংড ট্র্যাকিং_লংছোট্ট স্বপ্নের শিক্ষক হলেন বাস্তবতার সংস্করণ ডোলা A স্বপ্নের শিক্ষক ছোট্ট স্বপ্নের শিক্ষক সবচেয়ে বেশি ভালবাসে আপনাকে