dappo/3M互助系統開發邏輯及方案/案例原始碼/運營版

開發MrsFu123發表於2023-04-24

在這樣一個去中心化的分散式賬本中,新增一條新的紀錄,並同步到所有節點的操作必須按一定的規則進行,否則任何真實可信都無從談起。這個規則就是區塊鏈的共識機制。

理論上,一個公平合理的共識機制,應該允許所有節點都能增加區塊。當增加的區塊內容不同時,需要根據某種規則去協商,直到某一個區塊內容被接受,然後所有節點複製此區塊。與此等價的做法是,不是所有節點都可以增加區塊,而是根據某種規則選舉出一個有資格增加新區塊的節點,複製該節點所增加的區塊資訊。區塊鏈採用了後者,並且由於選舉規則是公開透明的,選舉儀式就變成了競爭過程。


區塊鏈網路成員計算機中獨立進行的驗證流程,為此提供了高度的安全性。區塊鏈可被用來幫助維護會員資訊並確保系統程式的正常運作,可用於安全高效地跨平臺和跨系統傳輸使用者資料,亦可用於維護和保護房地產所有權和公證事項等記錄。



   def _filter_event_transfer(self, tx_receipt_event_log) -> List[ORDER_TX_RES_DETAILS_LIKE]:

        """

        事件日誌的解碼和整理


        :param tx_receipt_event_log:

        :return:

        """

        log_details: List[ORDER_TX_RES_DETAILS_LIKE] = []


        if isinstance(tx_receipt_event_log, Tuple):

            # assert len(tx_receipt_event_log) == 2, "此函式解析交易,理應只得到2筆Transfer記錄"

            if len(tx_receipt_event_log) != 2:  # 交易失敗的情況:()

                self._logger.error("事件日誌函式解析交易,理應只得到2筆Transfer記錄")

            for d in tx_receipt_event_log:

                if d.get("event") == "Transfer":

                    coin_name: str = self.coin_name_to_addr_dict_reverse[d["address"]]

                    transfer_vol: str = str(self.from_wei(d["args"]["value"], decimals=self.coin_decimals_dict[coin_name]))

                    from_addr: str = d["args"]["from"]

                    to_addr: str = d["args"]["to"]


                    if from_addr in self.account_addr_list:  # 如果是賬號的地址

                        print(f"是賬號的地址{from_addr}:{coin_name} 減少 {transfer_vol}")

                        order_res: ORDER_TX_RES_DETAILS_LIKE = {"coin_name": coin_name, "side": "sell", "vol": transfer_vol, "account_addr": from_addr}

                        log_details.append(order_res)

                    elif from_addr in self.pair_name_to_addr_dict.values():  # 如果是pair合約的地址

                        print(f"是pair合約的地址{from_addr}:{coin_name} 減少 {transfer_vol}")

                    else:

                        print(f"未知地址{from_addr}:{coin_name} 減少 {transfer_vol}")


                    if to_addr in self.account_addr_list:  # 如果是賬號的地址

                        print(f"是賬號的地址{to_addr}:{coin_name} 增加 {transfer_vol}")

                        order_res: ORDER_TX_RES_DETAILS_LIKE = {"coin_name": coin_name, "side": "buy", "vol": transfer_vol, "account_addr": to_addr}

                        log_details.append(order_res)

                    elif to_addr in self.pair_name_to_addr_dict.values():  # 如果是pair合約的地址

                        print(f"是pair合約的地址{to_addr}:{coin_name} 增加 {transfer_vol}")

                    else:

                        print(f"未知地址{to_addr}:{coin_name} 增加 {transfer_vol}")

        return log_details



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016819/viewspace-2948262/,如需轉載,請註明出處,否則將追究法律責任。

相關文章