<div id="ng5vq"><tr id="ng5vq"></tr></div>

  • <div id="ng5vq"></div>

      <em id="ng5vq"></em>
      <div id="ng5vq"></div>

          投資有風險 入市需謹慎
          APP
          下載火星財經客戶端

          掃描下載APP

          微信公眾號
          火星財經二維碼 火星財經

          崇慕:PoS發明人最新項目VEE源代碼庫分析評測

          崇慕 ·

          09月21日

          熱度: 20382

          雖然VEE主網還未上線,但代碼完善度極高,當前在github公開的主要有三個代碼庫,分別是vee節點、web錢包、冷錢包,可見其生態工具鏈已經很完善。

          項目概覽

          由PoS之父Sunny King 創建的區塊鏈數據庫云。VEE基于POS自研了業界最高效的共識算法SPOS,目前兩大主流公鏈以太坊和EOS的共識機制都是參考自POS。本次Sunny King帶來的SPOS,必然是萬眾期待。雖然VEE主網還未上線,但代碼完善度極高,當前在github公開的主要有三個代碼庫,分別是vee節點、web錢包、冷錢包,可見其生態工具鏈已經很完善;根據官方周報信息,全節點已在測試網穩定運行2周,沒有發現重大bug。

          項目特色

          VEE為了實現區塊鏈數據庫云的目標,獨創了很多超前的特性,VEE項目的4大項目特色分別是靈活的賬戶體系、媲美傳統數據庫的操作方式、協議分層和可插拔系統組件。

          崇慕:PoS發明人最新項目VEE源代碼庫分析評測

          靈活的賬戶體系

          1. 具備豐富的角色:

          • 公鑰:用戶所產生密鑰對的公開部分
          • 地址:公鑰的一種縮簡形式
          • 虛擬身份/化身:與供臨時使用的公鑰相比,為長期使用身份
          • 組織:每個身份與多個虛擬身份/化身相關聯,并由多個虛擬身份/化身所管理
          • 可替代物:可替代屬性的虛擬資產/代幣,如貨幣、股份等
          • 賬號:身份所擁有可替代物的容器,類似于銀行賬戶。注意其與傳統數據庫用戶賬 戶的區別。

          2. 媲美傳統數據庫的操作方式

          VEE平臺計劃引入高級數據庫查詢功能。類似于 MongoDB 的對象-關系型查詢語言,比傳統關系型查詢模型(即 SQL)更加靈活。支持的操作有:

          • 創建數據庫
          • 插入對象
          • 更新對象
          • 刪除對象
          • 創建索引
          • 按索引鍵值查詢

          3. 協議分層

          ? 共識管理層 ? 區塊樹(Block tree)管理層 ? 鏈間(Interchain)處理層 ? 交易處理層 ? 數據格式層

          4. 可插拔系統組件

          ? 可插拔式共識模型 ? 可插拔式業務邏輯容器 ? 數據庫管理組件 ? 數據庫操作組件 ? 數據庫查詢組件 ? 共享對等網絡服務 ? 進行區塊鏈處理的全節點 ? 智能手機端輕節點冷錢包 ? 智能手機端輕節點熱錢包 ? 瀏覽器端錢包

          代碼庫基本信息

          VEE目前在github公布的主要有三個代碼庫,分別是vee節點、web錢包,冷錢包。此外還有一個管理公私鑰對的命令行工具wallet-generator。

          VEE全節點

          commitscontributorsstars
          5454344

          • commit數量豐富。結合提交歷史可以發現VEE代碼提交頻繁,且每次都是高質量的代碼推送,這個成績超過現有99%的區塊鏈項目。
          • 代碼量(只統計scala主體,不計算腳本和庫文件):27706行。可見scala寫出的項目代碼精簡,但功能豐富。相比其他區塊鏈項目動輒10W+的代碼量,vee不到3W簡直是開發者的福音。
          • 作為未發布主網的區塊鏈項目,34位貢獻者很突出,說明國際區塊鏈開發社區已欣然擁抱VEE,可以預見,隨著主網發布完成,開發者社區日益完善,開發者生態很快就會與EOS,以太坊等現有主流公鏈并駕齊驅。
          • star數較少,甚至少于貢獻者。這是預期中的數字,因為VEE的開發者生態處于從0到1的建設過程,目前更多的精力還是應該集中保證主網穩定發布,完善核心功能。

          vee-wallet-gui

          基于 SPV(Simplified Payment Verification),NodeJs開發的Web版輕錢包。除了基本的私鑰保管,還包括交易、資產保護以及發行基于VEE的代幣等豐富功能。除此之外,web版錢包還支持對冷錢包的監控,通過掃描冷錢包應用程序生成的qr代碼,即可在賬戶窗口查看所有的錢包信息。

          • github

          |commits|contributors|stars| | :--: | :--: | :--: | :--: | |502|6|4|

          vee-cold-android

          基于Android開發的冷錢包。冷錢包主要用于保障存儲VVEcoin的安全性,其關鍵功能是離線狀態下生成和存儲私鑰。在熱錢包的幫助下,可實現轉賬、租賃等基本的錢包操作。此外,冷錢兼容多種備份恢復方案,并可在設備之間輕松的遷移。

          commitscontributorsstars
          7531

          wallet-generator

          錢包管理工具。可通過交互式的命令行生成錢包文件,管理公私鑰對。

          commitscontributorsstars
          9740

          代碼解構

          SPOS共識算法

          VEE基于POS改造升級了出SPOS(Supernode proof-of-stake)。SPOS提升區塊產生的速度,其采用MAB的機制及搶奪釋放的機制,保證了更強的公平性。SPOS目標是60個節點及60個鑄幣槽(鑄幣權),初期15個節點和60個鑄幣槽。這樣更有利于初期的參與者獲得更多的收益,還在擴展性上提供了更多的空間。從共識底層架構技術層面采用了分布式超級節點,按循序出塊且間隔固定,在穩定及安全性上得到更好的保障。

          • 我們總結了SPOS的特性:

          • SPOS超級節點按固定順序出塊;
          • 以15個超級節點開啟主網,隨著網絡增長,超級節點數增長到30-60;
          • 塊與塊之間間隔是固定的,這樣帶來了更佳穩定的延遲;
          • 60個鑄幣槽,分別代表了一分鐘的60秒;
          • 搶奪/釋放的機制,使得鑄幣權的競爭更公平(相較DPOS,就是比幣數,幣可以在多個節點重復投票);
          • 鑄幣平均算法MAB,可以支撐幣權更好的流動性,不讓幣往一個地方跑,保持去中心化,保護網絡安全;

          此SPOS機制來帶的好處:

          • 為高性能的公鏈提供穩定高效的基礎設施;
          • 固定的塊間隔設計,帶來的是兼具高吞吐量和更加穩定的區塊鏈網絡(其他網絡的高吞吐都無法保證穩定性,最終也是支持不了高性能業務運行的);
          • 冷鑄幣的設計,保證了區塊鏈更加安全的性能;
          • 經濟系統的設計,鼓勵生態系統持續投入升級超級節點,這樣保證了系統的運行效果將不斷提升;

          • SPOS算法入口如下:

          package vee.consensus.spos
          
          import com.google.common.primitives.{Bytes, Longs}
          import play.api.libs.json.{JsObject, Json}
          import scorex.block.BlockField
          
          case class SposConsensusBlockField(override val value: SposConsensusBlockData)
            extends BlockField[SposConsensusBlockData] {
          
            override val name: String = "SPOSConsensus"
          
            override def bytes: Array[Byte] =
              Bytes.ensureCapacity(Longs.toByteArray(value.mintTime), 8, 0) ++
                Bytes.ensureCapacity(Longs.toByteArray(value.mintBalance), 8, 0)
          
            override def json: JsObject = Json.obj(name -> Json.obj(
              "mintTime" -> value.mintTime,
              "mintBalance" -> value.mintBalance
            ))
          }

          mab算法

          為了保持加權平均余額的良好性能并克服這些缺點,VEE提出了一種新的平衡稱為鑄造平均余量(MAB),即:?Shn = min {Bhn,αBhn-1 +(1-α)Shn-1}

          • 其中Bhn表示高度hn處的當前平衡。

          • 最小平均余額取當前余額和加權平均余額的最小值。

          • 計算復雜度仍為O(1)。此外,在這個公式中,如果一個人將他/她的余額全部轉出,MAB將直接減少到0。使用此屬性,總計量平均余額將保守并由總余額控制。

          • mab算法對應的實現如下:

          MAB:weightedBalaceCalc
          
          object SPoSCalc extends ScorexLogging {
          
            // useful constant
            val MinimalEffectiveBalanceForContender: Long = 100000000000000L
          
            // update plan: 4 -> 15 slots, 2 -> 30 slots, 1 -> 60 slots
            val SlotGap = if (AddressScheme.current.chainId == 'M'.toByte) 4 else 1
          
            // update plan: 15 slots -> 36 vee coins, 30 slots -> 18 vee coins, 60 slots -> 9 vee coins
            val BaseReward = 900000000L
            val MintingReward = BaseReward * SlotGap
          
            def weightedBalaceCalc(heightDiff: Int, lastEffectiveBalance: Long, lastWeightedBalance: Long, cntEffectiveBalance: Long, fs: FunctionalitySettings): Long = {
              // mintingSpeed should be larger than 0
              val maxUpdateBlocks = 24 * 60 * 60 / math.max(fs.mintingSpeed, 1) * 1L
              val weightedBalance = math.min(lastEffectiveBalance/maxUpdateBlocks * math.min(maxUpdateBlocks, heightDiff)
                + lastWeightedBalance/maxUpdateBlocks * (maxUpdateBlocks - math.min(maxUpdateBlocks, heightDiff)),
                cntEffectiveBalance)
              weightedBalance
            }
          
            def mintingBalance(state: StateReader, fs: FunctionalitySettings, account: Address, atHeight: Int): Long = {
              //TODO: we should set the mintingBalance for Genesis case
              // this function only useful for spos minting process
              // here atHeight should be larger than lastHeight (validation)
          
              val lastHeight = state.lastUpdateHeight(account).getOrElse(0)
              val lastWeightedBalance = state.lastUpdateWeightedBalance(account).getOrElse(0L)
              val lastEffectiveBalance = state.effectiveBalanceAtHeightWithConfirmations(account,lastHeight,0)
              val cntEffectiveBalance = state.effectiveBalance(account)
          
              val weightedBalance = lastHeight == atHeight match {
                case true => state.lastUpdateWeightedBalance(account).getOrElse(0L)
                case _ => weightedBalaceCalc(atHeight - lastHeight, lastEffectiveBalance, lastWeightedBalance, cntEffectiveBalance, fs)
              }
              weightedBalance
            }
          
            // TODO: all SPoS related functions will be defined here
          
          }

          公鏈對比

          開發語言共識機制TPS賬戶設計打包時間
          比特幣C++POW7UTXO10分鐘
          以太坊GOPOW+POS小于100Account based15秒
          EOSC++DPOS3500-4000Account based小于1秒
          VEEscalaSPOS3500-4000Account based小于4秒

          • 比特幣:區塊鏈的龍頭老大,知名度最高,受眾最廣;代表區塊鏈1.0
          • 以太坊:首先提出智能合約的概念,開源社區最為成熟;代表區塊鏈2.0
          • EOS:秒級出塊速度,Dapp生態最為繁榮;代表區塊鏈3.0
          • VEE:由PoS之父Sunny King 創建的區塊鏈數據庫云,自研了最高效的共識算法SPOS;代表區塊鏈5.0

          從開發語言來看。比特幣和EOS基于C++,開發門檻最高,目前EOS的智能合約只支持C++,且在短期內沒有支持其他語言的可能;以太坊基于GO,開發門檻稍低,但GO語言的生態遠不如JAVA,C/C++,并且GO自身的特性還有很多需要完善的地方; VEE基于scala開發,scala語言性能優異,完美兼容java生態體系,想必Sunny King選擇scala也是預見到它的潛力。

          從共識機制來看。PoW(Proof of Power)即工作量證明,是最有名也是目前使用最廣泛的共識算法,雖然通過爭奪記賬權的方式一定程度上保證了整個網絡的安全性,但消耗了巨大的資源,從結果上來說所有的節點都在做毫無意義的運算;而且挖礦機制導致平均10分鐘才形成一個區塊,很多區塊被確認時間超過2個小時,交易速度延遲度非常高。PoS(Proof of Stake)即股權證明,由質數幣、點點幣、VEE的創始人Sunny King提出,PoS 試圖解決 PoW 機制中大量資源被浪費的情況,這種機制通過計算你持有占總幣數的百分比以及占有幣數的時間來決定記賬權;其被提出后受到業界熱烈追捧,區塊鏈2.0的大量公鏈包括以太坊都是采用POS共識機制。DPoS(Delegated Proof of Stake)即委托股權證明,是 PoS 的變種方案,比特股 BTS 和EOS即使用 DPoS共識機制,DPOS相較于POS的變化在于通過不同的策略,不定時的選中一小群節點,這一小群節點做新區塊的創建,驗證,簽名和相互監督,這樣就大幅度的減少了區塊創建和確認所需要消耗的時間和算力成本。SPOS(Supernode Proof-of-Stake)即超級節點股權證明,很明顯,SPOS是POS的進化版本,代表區塊鏈5.0的共識機制,由POS的創始人Sunny King親自操刀,SPOS的出現,代表著公鏈在性能上獲得里程碑式的突破,基于SPOS的VEE公鏈能夠承載海量的dapp生態,使得區塊鏈產品大規模落地成為可能。

          測試網絡部署

          • 服務器OS版本:Ubuntu 16.04.5 LTS
          • VEE版本:v0.1rc1

          Install JRE 1.8

          sudo add-apt-repository -y ppa:webupd8team/java
          sudo apt-get update
          sudo apt-get -y install oracle-java8-installer

          • 確認安裝成功
            java -version

          Install SBT (Scala Build Tool)

          echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
          sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
          sudo apt-get update
          sudo apt-get install sbt

          • Tips:某些版本的ubuntu執行sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823的時候可能會報錯:

            $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
            Executing: /tmp/apt-key-gpghome.hEtryDWci3/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
            gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
            gpg: connecting dirmngr at '/tmp/apt-key-gpghome.hEtryDWci3/S.dirmngr' failed: No such file or directory
            gpg: keyserver receive failed: No dirmngr

            > 按照提示先安裝dirmngr即可:$ sudo apt-get install dirmngr

          • 確認sbt安裝成功

            $ which sbt
            /usr/bin/sbt

          安裝vee節點服務

          • 下載deb安裝文件

            mkdir ~/vee && wget https://github.com/excelsia/vee/releases/download/v0.1rc1/vee-testnet_0.1rc1.deb
          • 安裝

            $ sudo dpkg -i vee*.deb
            Selecting previously unselected package vee-core-testnet.
            (Reading database ... 51859 files and directories currently installed.)
            Preparing to unpack vee-testnet_0.1rc1.deb ...
            Unpacking vee-core-testnet (0.0.3) ...
            Setting up vee-core-testnet (0.0.3) ...
            Warning: The home dir /var/lib/vee-core-testnet you specified can't be accessed: No such file or directory
            Adding system user `vee-core-testnet' (UID 112) ...
            Adding new group `vee-core-testnet' (GID 116) ...
            Adding new user `vee-core-testnet' (UID 112) with group `vee-core-testnet' ...
            Not creating home directory `/var/lib/vee-core-testnet'.
            Creating default config file ...
            Installing systemd service ...
            Created symlink from /etc/systemd/system/multi-user.target.wants/vee-core-testnet.service to /lib/systemd/system/vee-core-testnet.service.
          • systemctl啟動服務并確認啟動狀態

            $ sudo systemctl start vee-core-testnet.service 
            $ sudo systemctl status vee-core-testnet.service

          > 服務啟動正常,整個部署過程簡潔,清晰。

          配置文件

          • vee配置文件路徑:/etc/vee-core-testnet/,重點分析vee.conf

            1 vee {
            2   #directory = /tmp/vee
            3   logging-level = DEBUG
            4   network {
            5     known-peers = ["52.8.148.150:19923", "18.130.233.104:9923"]
            6     black-list-residence-time = 30s
            7     peers-broadcast-interval = 5s
            8     connection-timeout = 30s
            9   }
            10   wallet {
            11     password = ""
            12   }
            13   blockchain {
            14     type = TESTNET
            15   }
            16   checkpoints.public-key = 4HmYEMpPaJXJsDgdjGfFNXLAY2CdDAfhynwSL9BqydNA
            17   matcher.enable = no
            18   miner {
            19     enable = yes
            20     offline = no
            21     quorum = 1
            22     generation-delay = 1s
            23     interval-after-last-block-then-generation-is-allowed = 120h
            24     tf-like-scheduling = no
            25     reward-address = ""
            26   }
            27   rest-api {
            28     enable = yes
            29     bind-address = 0.0.0.0
            30     #api key veetest2018 for hash Fo8fR7J1gB3k2WoaE6gYKMwgWfoh9EtZtXAMBxYYCJWG
            31     api-key-hash = Fo8fR7J1gB3k2WoaE6gYKMwgWfoh9EtZtXAMBxYYCJWG
            32   }
            33   utx.broadcast-interval = 3s
            34 }
          • 網絡相關配置:

            • known-peers:本地節點初始化啟動時連接的種子節點,目前默認是兩個。這也是為什么本地節點啟動就可以正常工作的原因。
            • peers-broadcast-interval:節點信息同步的周期,比如如果設置為5s,就是每隔5秒鐘同步一次known-peers節點信息。
            • black-list-residence-time:將節點列入黑名單的時間
            • connection-timeout:peer節點網絡連接超時時間
          • 錢包相關配置:

            • file:指定wallet文件的路徑,如果不指定默認的錢包文件為/var/lib/vee-core-testnet/wallet/wallet.dat
            • password:設定保護錢包文件的密鑰
          • blockchain配置:

            • type:區塊鏈網絡類型,測試網絡對應的值為TESTNET
          • miner配置

            • enable:挖礦開關
            • offline:節點脫機開關
            • quorum:連接多少個peer節點觸發挖礦。默認為1表示只要連接一個peer節點就開始挖礦,設為0意味著節點離線狀態也可以生成區塊,類似solo模式。
            • generation-delay:生成區塊的超時時間
            • interval-after-last-block-then-generation-is-allowe:意味著本地節點將不會開始產生區塊直到有最后一個時間不超過120小時的區塊
            • reward-address:自定義本地節點挖礦獎勵的地址,默認為空即挖礦成功后自動發送到本地節點地址,也可以指定冷錢包地址,無疑這樣安全性更高。
          • REST API配置

            • enable:激活或關閉rest-api功能
            • bind-address:指定rest-api綁定地址,如0.0.0.0表示開放外來連接
            • api-key-hash:api-key的哈希值,默認為Fo8fR7J1gB3k2WoaE6gYKMwgWfoh9EtZtXAMBxYYCJWG

          >?vee.conf詳細的配置模板參見:https://github.com/excelsia/vee/blob/master/vee-testnet.conf

          節點數據

          • vee數據目錄

            /var/lib/vee-core-testnet/
          • 進入數據目錄查看,區塊鏈數據文件blockchain.dta同步完成后目前大小為373M。

            $ ls -alh
            total 422M
            drwxr-xr-x 2 vee-core-testnet vee-core-testnet 4.0K Sep 15 05:09 .
            drwxr-xr-x 5 vee-core-testnet vee-core-testnet 4.0K Sep 15 05:09 ..
            -rw-r--r-- 1 vee-core-testnet vee-core-testnet 373M Sep 15 08:04 blockchain.dat
            -rw-r--r-- 1 vee-core-testnet vee-core-testnet 8.0K Sep 15 05:09 checkpoint.dat
            -rw-r--r-- 1 vee-core-testnet vee-core-testnet  52K Sep 15 08:52 peers.dat
            -rw-r--r-- 1 vee-core-testnet vee-core-testnet  49M Sep 15 09:00 state.dat

          節點部署總結

          VEE的節點部署簡單程度絕對會讓開發者驚喜。如果是第一次部署節點,不需要改動任何參數和配置,按照文檔步驟10分鐘以內即可將本地節點搭建完成。此外,很期待VEE社區完善對更多系統以及docker容器的支持。

          評測總結

          本文通過項目概覽、項目特色、github庫信息、代碼解構、公鏈對比、節點部署等多維度對VEE項目進行全方位的技術評測。結論是VEE項目獨具特色,與其定位"區塊鏈數據庫及應用平臺"相符。VEE生態工具鏈完成度非常高,由Sunny King親自帶領的技術團隊實力毋庸置疑。具體工程實現上由scala開發的vee節點性能高效,考慮到scala完全兼容java技術棧,一旦主網發布必然能借勢java生態獲得大量開發者的追捧。在公鏈對比環節,我們可以發現從比特幣、以太坊、EOS再到VEE,代表著公鏈的版本升級,生態也日趨繁榮,基于SPOS共識機制的VEE 將成為繼以太坊、EOS之后里程碑式的公鏈項目,值得長期期待。最后,評測小組對VEE節點進行部署測試,10分鐘內即完成本地節點搭建,在評測期間(一周)節點運行狀態良好。

          參考資料

          https://www.vee.tech/index/index/resources.html?id=2

          https://talk.peercoin.net/search?q=sunn%20%20king

          https://talk.peercoin.net/t/sunny-king-interviewed-by-crypto-capitalism-center-july-06-2016/3980

          https://talk.peercoin.net/t/peercointalks-community-interview-with-sunny-king-3-may-24th-2014/2415

          https://bitcointalk.org/index.php?topic=2564861.0

          https://talk.peercoin.net/t/transcript-of-sunny-king-interview-with-vitalik-buterin-from-bitcoinmagazine/463

          https://medium.com/new-kids-on-the-block-chain/a-short-on-sunny-king-return-of-the-king-inventor-of-pos-474e534739dc

          https://www.swissinfo.ch/eng/vee-project_sunny-king-returns-to-take-on-blockchain-database-puzzle/43873586

          [Back 2014] Enabling Blockchain Innovationswith Pegged Sidechains,?https://blockstream.com/sidechains.pdf

          [Buterin 2014] Ethereum: A Next-GenerationSmart Contract and Decentralized application Platform,?http://www.the-blockchain.com/docs/Ethereumwhitepapera_nextgenerationsmartcontractanddecentralizedapplication_platform-vitalik-buterin.pdf

          [King 2012] PPCoin: Peer-to-PeerCrypto-Currency with Proof-of-Stake,?https://peercoin.net/assets/paper/peercoin-paper.pdf

          [King 2013] Primecoin: Cryptocurrency withPrime Number Proof-of-Work,?http://primecoin.io/bin/primecoin-paper.pdf

          [Lamport 1982] The Byzantine GeneralsProblem,?http://lamport.azurewebsites.net/pubs/byz.pdf

          [Nakamoto 2008] Bitcoin: A Peer-to-PeerElectronic Cash System,?https://bitcoin.org/bitcoin.pdf

          [Poon 2017] Plasma: Scalable Autonomous SmartContracts,?https://plasma.io/plasma.pdf

          [Silver 2016] Mastering the game of Go withdeep neural networks and tree search,?https://storage.googleapis.com/deepmind-media/alphago/AlphaGoNaturePaper.pdf

          [Szabo 1996] Smart Contracts: Building Blocksfor Digital Markets,?http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwintersc?hool2006/szabo.best.vwh.net/smartcontracts2.html

          主要作者:

          張志華?鏈式科技 CTO ,曾就職于百度,區塊鏈技術早期參與者,主要從事系統架構與設計,已經主導多個區塊鏈項目開發。對分布式共識算法具有深入的研究與實戰經驗。

          廖紅坤?鏈式科技?核心技術,曾就職于網易,區塊鏈技術狂熱者,高級Dev0ps工程師,多年分布式開發、以太坊智能合約、HyperLedger/Fabric、超級賬本等技術架構與實現有深入研究。

          內容大綱 :?

          崇慕??區塊鏈開發者技術生態研究者,游戲蠻牛創始人,dll.io創始人


          文章聲明:本文為火星財經專欄作者作品,不代表火星財經觀點,版權歸作者所有,如需轉載,請提前聯系作者或注明出處。

          推廣
          相關新聞

          漲幅榜

          你可能感興趣的內容
          下一篇

          區塊鏈+房地產:不動產鏈上證券化的可行性研究

          河北十一选五软件