分享百科

AO

<!DOCTYPE html> <html lang='zh-CN'> <head> <title>去中心化存储/AO/Readme.md · 登链社区/web3map - Gitee.com</title> <meta content='on' http-equiv='x-dns-prefetch-control'> <link href='//e.gitee.com' rel='dns-prefetch'> <link href='//files.gitee.com' rel='dns-prefetch'> <link href='//toscode.gitee.com' rel='dns-prefetch'> <link href='https://cn-assets.gitee.com' rel='dns-prefetch'> <link href='https://portrait.gitee.com' rel='dns-prefetch'> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="https://cn-assets.gitee.com/assets/favicon-9007bd527d8a7851c8330e783151df58.ico" /> <link rel="canonical" href="https://gitee.com/lbc-team/web3map" /> <meta content='gitee.com/lbc-team/web3map git https://gitee.com/lbc-team/web3map.git' name='go-import'> <meta charset='utf-8'> <meta content='always' name='referrer'> <meta content='Gitee' property='og:site_name'> <meta content='Object' property='og:type'> <meta content='https://gitee.com/lbc-team/web3map/blob/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md' property='og:url'> <meta content='https://gitee.com/static/images/logo_themecolor.png' itemprop='image' property='og:image'> <meta content='去中心化存储/AO/Readme.md · 登链社区/web3map - Gitee.com' itemprop='name' property='og:title'> <meta content='Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200万的开发者选择 Gitee。' property='og:description'> <meta content='码云,Gitee,代码托管,Git,Git@OSC,Gitee.com,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务' name='Keywords'> <meta content='Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200万的开发者选择 Gitee。' itemprop='description' name='Description'> <meta content='pc,mobile' name='applicable-device'>

<meta content="IE=edge" http-equiv="X-UA-Compatible" /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="l9s09Hv0/1pnILHRtda3MnVbzP56WwODrjakDihA4lYQcsQirbwve8cyEiH2ZoQNuRLMDkOhvq1rooj9LWA1WQ==" />

<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/application-b9588914bf159c2e183477afabb2c49f.css" /> <script> //<![CDATA[ window.gon = {};gon.locale="zh-CN";gon.sentry_dsn=null;gon.baidu_register_hm_push=null;gon.sensor={"server_url":"https://haveaniceday.gitee.com:3443/sa?project=production","sdk_url":"https://cn-assets.gitee.com/assets/static/sensors-sdk-2f850fa5b654ad55ac0993fda2f37ba5.js","page_type":"其他"};gon.info={"controller_path":"blob","action_name":"show","current_user":false};gon.tour_env={"current_user":null,"action_name":"show","original_url":"https://gitee.com/lbc-team/web3map/blob/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md","controller_path":"blob"};gon.http_clone="https://gitee.com/lbc-team/web3map.git";gon.user_project="lbc-team/web3map";gon.manage_branch="管理分支";gon.manage_tag="管理标签";gon.enterprise_id=0;gon.create_reaction_path="/lbc-team/web3map/reactions";gon.ipipe_base_url="https://go-api.gitee.com";gon.artifact_base_url="https://go-repo.gitee.com";gon.gitee_go_remote_url="https://go.gitee.com/assets";gon.gitee_go_active=false;gon.current_project_is_mirror=false;gon.show_repo_comment=false;gon.diagram_viewer_path="https://diagram-viewer.giteeusercontent.com";gon.ref="main"; //]]> </script> <script src="https://cn-assets.gitee.com/assets/static/sensor-6269b9ad61bbcdaff20078e5dcff62d5.js">&lt;/script> <script src="https://cn-assets.gitee.com/assets/static/sentry-5.1.0-a823fb0be1b61c5d7ca4a89f0536cb0a.js">&lt;/script> <script src="https://cn-assets.gitee.com/assets/application-41226c6a36ee674dcabaa6eb9b9e2a26.js">&lt;/script> <script src="https://cn-assets.gitee.com/assets/lib/jquery.timeago.zh-CN-4a4818e98c1978d2419ab19fabcba740.js">&lt;/script>

<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/projects/application-46b94c31ba11ae8c37eacce2bdb5603e.css" /> <script src="https://cn-assets.gitee.com/assets/projects/app-9e2d277091428536167de1d8fba0e8cb.js">&lt;/script>

<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script> var title = document.title.replace(/( - Gitee| - 码云)$/, '') imgUrl = '';

document.addEventListener('DOMContentLoaded', function(event) { var imgUrlEl = document.querySelector('.readme-box .markdown-body > img, .readme-box .markdown-body :not(a) > img'); imgUrl = imgUrlEl && imgUrlEl.getAttribute('src');

if (!imgUrl) {
  imgUrlEl = document.querySelector('meta[itemprop=image]');
  imgUrl = imgUrlEl && imgUrlEl.getAttribute('content');
  imgUrl = imgUrl || "https://gitee.com/static/images/logo_themecolor.png";
}

wx.config({
  debug: false,
  appId: "wxff219d611a159737",
  timestamp: "1723806280",
  nonceStr: "33f559b4c0245d9b3d2faea3b20ae5ff",
  signature: "2a5515dfe954f0e89bb0ead3b64d19337e4fb2da",
  jsApiList: [
    'onMenuShareTimeline',
    'onMenuShareAppMessage'
  ]
});

wx.ready(function () {
  wx.onMenuShareTimeline({
    title: title, // 分享标题
    link: "https://gitee.com/lbc-team/web3map/blob/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl: imgUrl // 分享图标
  });
  wx.onMenuShareAppMessage({
    title: title, // 分享标题
    link: "https://gitee.com/lbc-team/web3map/blob/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    desc: document.querySelector('meta[name=Description]').getAttribute('content'),
    imgUrl: imgUrl // 分享图标
  });
});
wx.error(function(res){
  console.error('err', res)
});

}) </script>

<script type='text/x-mathjax-config'> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\(','\)']], displayMath: [["$$","$$"],["\[","\]"]], processEscapes: true, skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'], ignoreClass: "container|files", processClass: "markdown-body" } }); </script> <script src="https://cn-assets.gitee.com/uploads/resources/MathJax-2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">&lt;/script>

<script> (function () { var messages = { 'zh-CN': { addResult: '增加 <b>{term}</b>', count: '已选择 {count}', maxSelections: '最多 {maxCount} 个选择', noResults: '未找到结果', serverError: '连接服务器时发生错误' }, 'zh-TW': { addResult: '增加 <b>{term}</b>', count: '已選擇 {count}', maxSelections: '最多 {maxCount} 個選擇', noResults: '未找到結果', serverError: '連接服務器時發生錯誤' } }

if (messages[gon.locale]) {
  $.fn.dropdown.settings.message = messages[gon.locale]
}

}()); </script>

<script> var userAgent = navigator.userAgent; var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1; if(isLessIE11){ var can_access = "" if (can_access != "true"){ window.location.href = "/incompatible.html"; } } document.addEventListener("error", function (ev) { var elem = ev.target; if (elem.tagName.toLowerCase() === 'img') { elem.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII="; } }, true); </script> </head>

<body class='git-project lang-zh-CN'> <header class='common-header fixed noborder' id='git-header-nav'> <div class='ui container'> <div class='ui menu header-menu header-container'> <div class='git-nav-expand-bar'> <i class='iconfont icon-mode-table'></i> </div> <div class='gitee-navsidebar'> <div class='gitee-navsidebar-container'> <div class='gitee-navsidebar-top'> <div class='gitee-navavatar-box'></div> <div class='gitee-navbuttons-box'> <a class="ui button small fluid orange" href="/login">登录</a> <a class="ui button small fluid basic is-register" href="/signup">注册</a> </div> </div> <div class='gitee-navsidebar-middle'> <div class='gitee-navsidebar-list'> <ul> <li class='gitee-navsidebar-item'> <a href="/explore"><i class='iconfont icon-ic-discover'></i> <span class='gitee-navsidebar-name'>开源</span> </a></li> <li class='gitee-navsidebar-item'> <a href="/enterprises"><i class='iconfont icon-ic-enterprise'></i> <span class='gitee-navsidebar-name'>企业版</span> </a></li> <li class='gitee-navsidebar-item'> <a href="/education"><i class='iconfont icon-ic-education'></i> <span class='gitee-navsidebar-name'>高校版</span> </a></li> <li class='gitee-navsidebar-item split-line'></li> <li class='gitee-navsidebar-item'> <a href="/search"><i class='iconfont icon-ic-search'></i> <span class='gitee-navsidebar-name'>搜索</span> </a></li> <li class='gitee-navsidebar-item'> <a href="/help"><i class='iconfont icon-help-circle'></i> <span class='gitee-navsidebar-name'>帮助中心</span> </a></li> <li class='gitee-navsidebar-item'> <a href="/terms"><i class='iconfont icon-file'></i> <span class='gitee-navsidebar-name'>使用条款</span> </a></li> <li class='gitee-nav__sidebar-item'> <a href="/about_us"><i class='iconfont icon-issuepx'></i> <span class='gitee-navsidebar-name'>关于我们</span> </a></li> </ul> </div> </div> <div class='gitee-navsidebar-bottom'> <div class='gitee-nav__sidebar-close-button'> <i class='fa fa-angle-double-left'></i> </div> </div> </div> </div>

<!-- /todo 10周年活动结束后 恢复 --> <div class='item gitosc-logo'> <a href="https://gitee.com">&lt;img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline image' height='28' src='/static/images/logo.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='95'> <img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline black image' height='28' src='/static/images/logo-black.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='95'> </a></div> <a title="开源" class="item " href="/explore">开源 </a><a title="企业版" class="item " sa_evt="click_GiteeCommunity_tab_En" href="/enterprises">企业版 </a><a title="高校版" class="item " href="/education">高校版 </a><a title="私有云" class="item" target="_blank" href="https://gitee.cn?utm_source=giteecom">私有云 </a><a title="Gitee AI" class="item mr-3" id="gitee-blog" target="_blank" href="https://ai.gitee.com/?utm_sources=site_nav">Gitee AI <sup class='ui red label'> NEW </sup> </a><div class='center responsive-logo'> <a href="https://gitee.com">&lt;img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline image' height='24' src='/static/images/logo.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='85'> <img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline black image' height='24' src='/static/images/logo-black.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='85'> </a></div> <div class='right menu userbar right-header' id='git-nav-user-bar'> <form class="ui item" id="navbar-search-form" data-text-require="搜索关键字不能少于1个" data-text-filter="搜索格式不正确" action="/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <input type="hidden" name="type" id="navbar-search-type" /> <input type="hidden" name="fork_filter" id="fork_filter" value="on" /> <div class='ui search header-search'> <input type="text" name="q" id="navbar-search-input" value="" class="prompt" placeholder="搜开源" /> </div> </form>

<script> var can_search_in_repo = 1, repo = "VFhwWk0wNTZTVE5PUkVab1RucFplbHBuUFQxaE56WXpaZz09YTc2M2Y=", reponame = "lbc-team/web3map";

$(function() { var $search = $('#navbar-search-form .ui.search'); $search.search({ apiSettings: { url: '/search/relative_project?q={query}', onResponse: function (res) { if (res && res.status === 200 && res.data) { var query = htmlSafe($search.search('get value'));

        res.data.map(function (item) {
          item.path_ns = '/' + item.path_ns;
          item.icon = 'iconfont icon-project-public';
        });
        res.data.unshift({
          name_ns: "在全站搜索 &lt;b class='hl'>" + query +"&lt;/b> 相关项目",
          path_ns: '/search?fork_filter=on&q=' + query,
          icon: 'iconfont icon-search'
        });
        return res;
      } else {
        return { data: [] };
      }
    }
  },
  fields: {
    results: 'data',
    description: 'name_ns',
    url: 'path_ns',
    icon: 'icon'
  },
  minCharacters: 1,
  maxResults: 10,
  searchDelay: 250,
  showNoResults: false,
  transition: 'fade'
});

}); </script>

<div class='ui item' id='feature-update-notice'> <div class='notice-update-icon'> <a class="notice-update-popup click-knowed" title="" href="javascript:void(0)"><img alt="功能更新" title="" class="bubl_icon bubl-off-icon" src="https://cn-assets.gitee.com/assets/bulb_off-24ee940be20998aace89a3f040cbc704.svg" /> <img alt="功能更新" title="" class="bubl_icon bubl-on-icon" src="https://cn-assets.gitee.com/assets/bulb_on-3986b1dc417285398e3d15671bd8f261.svg" /> </a></div> <div class='feature-update-notice-panel menu'> <div class='notice-img'> <img alt="" title="" class="notice-img-show" src="" /> </div> <div class='notice-update-title'></div> <div class='notice-update-des'></div> <div class='notice-btn-list d-flex-between'> <button name="button" type="button" class="ui basic orange button btn-notice btn-knowed click-knowed" style="margin-right: 0">我知道了</button> <a class="ui button orange btn-notice btn-details click-knowed" target="_blank" href="">查看详情</a> </div> </div> </div>

<a class="item git-nav-userlogin-item" sa_evt="login_show" sa_referrer_url="" sa_referrer_action="站导航右上角-登录按钮" sa_referrer_type="其他" href="/login">登录 </a><a class="item git-nav-userregister-item" sa_evt="register_show" sa_referrer_url="" sa_referrer_action="站导航右上角-注册按钮" sa_referrer_type="其他" href="/signup">注册 </a><script> $('.destroy-user-session').on('click', function() { $.cookie('access_token', null, { path: '/' }); }) </script>

</div> </div> </div> </header> <script> Gitee.initNavbar() Gitee.initRepoRemoteWay() $.cookie('user_locale',null) </script>

<script> var userAgent = navigator.userAgent; var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1; if(isLessIE11){ var can_access = "" if (can_access != "true"){ window.location.href = "/incompatible.html"; } } </script>

<div class='fixed-notice-infos'> <div class='all-messages'> </div> <div class='ui container'> <div class='flash-messages' id='messages-container'></div> </div> <script> (function() { $(function() { var $error_box, alertTip, notify_content, notify_options, template; template = '<div data-notify="container" class="ui {0} message" role="alert">' + '<i data-notify="dismiss" class="close icon"></i>' + '<span data-notify="message">{2}</span>' + '</div>'; notify_content = null; notify_options = {}; alertTip = ''; $error_box = $(".flash_error.flash_error_box"); if (notify_options.type === 'error' && $error_box.length > 0 && !$.isEmptyObject(notify_content.message)) { if (notify_content.message === 'captcha_fail') { alertTip = "验证码不正确"; } else if (notify_content.message === 'captcha_expired') { alertTip = "验证码已过期,请点击刷新"; } else if (notify_content.message === 'not_found_in_database') { alertTip = "帐号或者密码错误"; } else if (notify_content.message === 'not_found_and_show_captcha') { alertTip = "帐号或者密码错误"; } else if (notify_content.message === 'phone_captcha_fail') { alertTip = "手机验证码不通过"; } else { alertTip = notify_content.message; } return $error_box.html(alertTip).show(); } else if (notify_content) { if ("show" === 'third_party_binding') { return $('#third_party_binding-message').html(notify_content.message).addClass('ui message red'); } notify_options.delay = 3000; notify_options.template = template; notify_options.offset = { x: 10, y: 30 }; notify_options.element = '#messages-container'; return $.notify(notify_content, notify_options); } });

}).call(this); </script>

</div> <script> (function() { $(function() { var setCookie; setCookie = function(name, value) { $.cookie(name, value, { path: '/', expires: 365 }); }; $('#remove-bulletin, #remove-bulletin-dashboard').on('click', function() { setCookie('remove_bulletin', "gitee-maintain-1723086384"); $('#git-bulletin').hide(); }); $('#remove-member-bulletin').on('click', function() { setCookie('remove_member_bulletin', "gitee_member_bulletin"); $(this).parent().hide(); }); return $('#remove-gift-bulletin').on('click', function() { setCookie('remove_gift_bulletin', "gitee-gift-bulletin"); $(this).parent().hide(); }); });

}).call(this); </script> <script> function closeMessageBanner(pthis, type, val) { var json = {}

val = typeof val === 'undefined' ? null : val
$(pthis).parent().remove()
if (type === 'out_of_enterprise_member') {
  json = {type: type, data: val}
} else if (type === 'enterprise_overdue') {
  json = {type: type, data: val}
}
$.post('/profile/close_flash_tip', json)

} </script>

<div class='site-content'> <div class='git-project-header'> <div class='fixed-notice-infos'> <div class='ui info icon floating message green' id='fetch-ok' style='display: none'> <div class='content'> <div class='header status-title'> <i class='info icon status-icon'></i> 代码拉取完成,页面将自动刷新 </div> </div> </div> <div class='ui info icon floating message error' id='fetch-error' style='display: none'> <div class='content'> <div class='header status-title'> <i class='info icon status-icon'></i> <span class='error_msg'></span> </div> </div> </div> </div> <div class='ui container'>

<div class='git-project-header-details'> <div class='git-project-header-container'> <div class='git-project-header-actions'> <div class='ui tiny modal project-donate-modal' id='project-donate-modal'> <i class='iconfont icon-close close'></i> <div class='header'>捐赠</div> <div class='content'> 捐赠前请先登录 </div> <div class='actions'> <a class='ui blank button cancel'>取消</a> <a class='ui orange ok button' href='/login'>前往登录</a> </div> </div> <div class='ui small modal wepay-qrcode'> <i class='iconfont icon-close close'></i> <div class='header'> 扫描微信二维码支付 <span class='wepay-cash'></span> </div> <div class='content weqcode-center'> <img id='wepay-qrcode' src=''> </div> <div class='actions'> <div class='ui cancel blank button'>取消</div> <div class='ui ok orange button'>支付完成</div> </div> </div> <div class='ui mini modal' id='confirm-alipay-modal'> <div class='header'>支付提示</div> <div class='content'> 将跳转至支付宝完成支付 </div> <div class='actions'> <div class='ui approve orange button'>确定</div> <div class='ui blank cancel button'>取消</div> </div> </div>

<span class='ui buttons basic watch-container'> <div class='ui dropdown button js-project-watch' data-watch-type='unwatch'> <input type='hidden' value=''> <i class='iconfont icon-watch'></i> <div class='text'> Watch </div> <i class='dropdown icon'></i> <div class='menu'> <a data-value="unwatch" class="item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/lbc-team/web3map/unwatch"><i class='iconfont icon-msg-read'></i> 不关注 </a><a data-value="watching" class="item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/lbc-team/web3map/watch"><i class='iconfont icon-msg-read'></i> 关注所有动态 </a><a data-value="releases_only" class="disabled item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/lbc-team/web3map/release_only_watch"><i class='iconfont icon-msg-read'></i> 仅关注版本发行动态 </a><a data-value="ignoring" class="item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/lbc-team/web3map/ignoring_watch"><i class='iconfont icon-msg-read'></i> 关注但不提醒动态 </a></div> </div> <style> .js-project-watch .text .iconfont { display: none; } .js-project-watch a, .js-project-watch a:hover { color: #000; } .js-project-watch .item > .iconfont { visibility: hidden; margin-left: -10px; } .js-project-watch .selected .iconfont { visibility: visible; } .js-project-watch .menu { margin-top: 4px !important; } </style> <script> $('.js-project-watch').dropdown({ action: 'select', onChange: function(value, text, $selectedItem) { var type = value === 'unwatch' ? 'Watch' : 'Watching'; $(this).children('.text').text(type); $(this).dropdown('set selected', value) } }); </script>

<a class="ui button action-social-count" title="1" href="/lbc-team/web3map/watchers">1 </a></span> <span class='basic buttons star-container ui'> <a class="ui button star" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Star" sa_referrer_type="其他" href="/login"><i class='iconfont icon-star'></i> Star </a><a class="ui button action-social-count " title="0" href="/lbc-team/web3map/stargazers">0 </a></span> <span class='ui basic buttons fork-container' title='无权 Fork 此仓库'> <a class="ui button fork" title="你必须登录后才可以fork一个仓库" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Fork" sa_referrer_type="其他" href="/login"><i class='iconfont icon-fork'></i> Fork </a><a class="ui button action-social-count disabled-style" title="0" href="/lbc-team/web3map/members">0 </a></span> </div> <h2 class='git-project-title mt-0 mb-0'> <span class="project-title"><i class="project-icon iconfont icon-project-public" title="这是一个公开仓库"></i> <a title="登链社区" class="author" href="/lbc-team">登链社区</a>/<a title="web3map" class="repository" target="" style="padding-bottom: 0px; margin-right: 4px" sa_evt="repoClick" sa_location="其他" sa_url="" sa_repo_id="36772741" href="/lbc-team/web3map">web3map</a></span><span class="project-badges"><style> .gitee-modal { width: 500px !important; } </style> </span> <input type="hidden" name="project_title" id="project_title" value="登链社区/web3map" /> </h2> </div> </div> </div> <script> var title_import_url = "https://github.com/lbc-team/web3map.git"; var title_post_url = "/lbc-team/web3map/update_import"; var title_fork_url = "/lbc-team/web3map/sync_fork"; var title_project_path = "web3map"; var title_p_name = "web3map"; var title_p_id= "36772741"; var title_description = ""; var title_form_authenticity_token = "ujwpm8+5EL2pVvskhp1Iyn451Jd3Fct1B/FTb5kkulw9ldlNGfHAnAlEWNTFLXv1snDUZ07vdlvCZX+cnARtUw=="; var watch_type = "unwatch"; var checkFirst = false;

$('.js-project-watch').dropdown('set selected', watch_type); $('.checkbox.sync-wiki').checkbox(); $('.checkbox.sync-prune').checkbox(); $('.checkbox.team-member-checkbox').checkbox(); </script> <style> i.loading, .icon-sync.loading { -webkit-animation: icon-loading 1.2s linear infinite; animation: icon-loading 1.2s linear infinite; } .qrcode_cs { float: left; } .check-sync-wiki { float: left; height: 28px; line-height: 28px; } .sync-wiki-warn { color: #e28560; } </style>

<div class='git-project-nav'> <div class='ui container'> <div class='ui secondary pointing menu'> <a class="item active " href="/lbc-team/web3map"><i class='iconfont icon-code'></i> 代码 </a><a class="item " href="/lbc-team/web3map/issues"><i class='iconfont icon-task'></i> Issues <span class='ui mini circular label'> 0 </span> </a><a class="item " href="/lbc-team/web3map/pulls"><i class='iconfont icon-pull-request'></i> Pull Requests <span class='ui mini circular label'> 0 </span> </a><a class="item " href="/lbc-team/web3map/wikis"><i class='iconfont icon-wiki'></i> Wiki </a><a class="item " href="/lbc-team/web3map/graph/main"><i class='iconfont icon-statistics'></i> 统计 </a><a class="item " href="/lbc-team/web3map/gitee_go"><i class='iconfont icon-workflow'></i> 流水线 </a><div class='item'> <div class='ui pointing top right dropdown git-project-service'> <div> <i class='iconfont icon-service'></i> 服务 <i class='dropdown icon'></i> </div> <div class='menu' style='display:none'> <a class="item" href="/lbc-team/web3map/pages"><img src="/static/images/logo-en.svg" alt="Logo en" /> <div class='item-title'> Gitee Pages </div> </a><a class="item" href="/lbc-team/web3map/javadoc"><img src="https://cn-assets.gitee.com/assets/maven-bd58aee84f266d64d4b8ce5b006a9fcf.png" alt="Maven" /> <div class='item-title'> JavaDoc </div> </a><a class="item" href="/lbc-team/web3map/phpdoc"><img src="https://cn-assets.gitee.com/assets/phpdoc-a99f87c2feaa2fd99e5065377a39487e.png" alt="Phpdoc" /> <div class='item-title'> PHPDoc </div> </a><a class="item" href="/lbc-team/web3map/quality_analyses?platform=sonar_qube"><img src="https://cn-assets.gitee.com/assets/sonar_mini-5e1b54bb9f6c951d97fb778ef623afea.png" alt="Sonar mini" /> <div class='item-title'> 质量分析 </div> </a><a class="item" target="_blank" href="https://gitee.com/help/articles/4193">&lt;img src="https://cn-assets.gitee.com/assets/jenkins_for_gitee-554ec65c490d0f1f18de632c48acc4e7.png" alt="Jenkins for gitee" /> <div class='item-title'> Jenkins for Gitee </div> </a><a class="item" target="_blank" href="https://gitee.com/help/articles/4318">&lt;img src="https://cn-assets.gitee.com/assets/cloudbase-1197b95ea3398aff1df7fe17c65a6d42.png?20200925" alt="Cloudbase" /> <div class='item-title'> 腾讯云托管 </div> </a><a class="item" target="_blank" href="https://gitee.com/help/articles/4330">&lt;img src="https://cn-assets.gitee.com/assets/cloud_serverless-686cf926ced5d6d2f1d6e606d270b81e.png" alt="Cloud serverless" /> <div class='item-title'> 腾讯云 Serverless </div> </a><a class="item" href="/lbc-team/web3map/open_sca"><img src="https://cn-assets.gitee.com/assets/open_sca/logo-9049ced662b2f9936b8001e6f9cc4952.png" alt="Logo" /> <div class='item-title'> 悬镜安全 </div> </a><a class="item" target="_blank" href="https://help.gitee.com/devops/connect/Aliyun-SAE">&lt;img src="https://cn-assets.gitee.com/assets/SAE-f3aa9366a1e2b7fff4747402eb8f10c3.png" alt="Sae" /> <div class='item-title'> 阿里云 SAE </div> </a><a class="item" id="update-codeblitz-link" target="_blank" href="https://codeblitz.cloud.alipay.com/gitee/lbc-team/web3map/tree/main/去中心化存储/AO/Readme.md">&lt;img style="width:100px;margin-top:4px" src="https://cn-assets.gitee.com/assets/Codeblitz-8824e38875a106e16e29ff57ec977b08.png" alt="Codeblitz" /> <div class='item-title'> Codeblitz </div> </a><button class='ui orange basic button quit-button' id='quiting-button'> 我知道了,不再自动展开 </button> </div> </div> </div> </div> </div> </div> <script> $('.git-project-nav .ui.dropdown').dropdown({ action: 'nothing' }); var gitee_reward_config = JSON.parse(localStorage.getItem('gitee_reward_config') || null) || false var $settingText = $('.setting-text') // 如果没有访问过 if(!gitee_reward_config) $settingText.addClass('red-dot') $('.git-project-service').dropdown({ on: 'click', action: 'nothing', onShow: function () { const branch = 'main' let newUrl = https://codeblitz.cloud.alipay.com/gitee/lbc-team/web3map/tree/ const url = decodeURIComponent(window.location.pathname); const startIndex = url.indexOf('main'); if (startIndex !== -1) { newUrl = newUrl + url.substring(startIndex); // 从分支名开始截取 }else{ newUrl = newUrl + branch } const linkElement = document.getElementById("update-codeblitz-link"); linkElement.setAttribute("href", newUrl); }, }) </script> <style> .git-project-nav i.checkmark.icon { color: green; }

quiting-button {

display: none;

}

.git-project-nav .dropdown .menu.hidden:after { visibility: hidden !important; } </style> <script> isSignIn = false isClickGuide = false $('#git-versions.dropdown').dropdown(); $.ajax({ url:"/lbc-team/web3map/access/add_access_log", type:"GET" }); $('#quiting-button').on('click',function() { $('.git-project-service').click(); if (isSignIn) { $.post("/projects/set_service_guide") } $.cookie("Serve_State", true, { expires: 3650, path: '/'}) $('#quiting-button').hide(); }); if (!(isClickGuide || $.cookie("Serve_State") == 'true')) { $('.git-project-service').click() $('#quiting-button').show() } </script>

</div> <div class='ui container'> <div class='register-guide'> <div class='register-container'> <div class='regist'> 加入 Gitee </div> <div class='description'> 与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :) </div> <a class="ui orange button free-registion" sa_evt="register_show" sa_referrer_url="" sa_referrer_action="免费加入" sa_referrer_type="其他" href="/signup?from=project-guide">免费加入</a> <div class='login'> 已有帐号? <a href="/login?from=project-guide">立即登录</a> </div> </div> </div>

<div class='git-project-content-wrapper'>

<div class='ui grid' id='project-wrapper'> <div class='sixteen wide column' id='git-project-container'> <div class='git-project-content' id='git-project-content'> <div class='row'> <div class='git-project-desc-wrapper'> <script> $('.git-project-desc-wrapper .ui.dropdown').dropdown(); if (false) { gon.project_new_blob_path = "/lbc-team/web3map/new/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md" bindShowModal({ el: $('.no-license .project-license__create'), complete: function(data, modal) { if (!data.haveNoChoice && !data.data) { Flash.show('请选择一项开源许可证') } else { location.href = gon.project_new_blob_path + '?license=' + data.data } }, skip: function () { location.href = gon.project_new_blob_path + '?license' } }); }

$(".project-admin-action-box .reject").click(function() { var reason = $('[name=review-reject-reason]').val(); if (!reason) { Flash.error('请选择不通过理由') return } $.ajax({ type: 'POST', url: "/admin/shumei_content/shumei_check/reject_project_public", data: { reason: reason, status: 'rejected', project_id: 36772741 }, success: function(result){ if(result.status == 'success'){ window.location.reload(); }else{ Flash.error(result.message) } } }) })

$(".project-admin-action-box .approve").click(function(){

$.ajax({
  type: 'POST',
  url: "/admin/shumei_content/shumei_check/reject_project_public",
  data: {
    status: 'approved',
    project_id: 36772741
  },
  success: function(result){
    if(result.status == 'success'){
      window.location.reload();
    }else{
      Flash.error(result.message)
    }
  }
})

})

$(".project-admin-action-box .waiting").click(function(){

$.ajax({
  type: 'POST',
  url: "/admin/shumei_content/shumei_check/reject_project_public",
  data: {
    status: 'waiting',
    project_id: 36772741
  },
  success: function(result){
    if(result.status == 'success'){
      window.location.reload();
    }else{
      Flash.error(result.message)
    }
  }
})

})

$('i.help.circle.icon').popup({ popup: '.no-license .ui.popup', position: 'right center' });

$('#remove-no-license-message').on('click', function() { $.cookie("skip_repo_no_license_message_36772741", 'hide', { expires: 365 }); $('#user-no-license-message').hide(); return; }); </script> </div>

</div> <div class='git-project-bread' id='git-project-bread'> <div class='ui horizontal list mr-1'> <div class='item git-project-branch-item'> <input type="hidden" name="path" id="path" value="去中心化存储/AO/Readme.md" /> <div class='ui top left pointing dropdown gradient button dropdown-has-tabs' id='git-project-branch'> <input type="hidden" name="ref" id="ref" value="main" /> <div class='default text'> main </div> <i class='dropdown icon'></i> <div class='menu'> <div class='ui left icon input'> <i class='iconfont icon-search dropdown-search-icon'></i> <input class='search-branch' placeholder='搜索分支' type='text'> </div> <div class='tab-menu project-branch-tab-menu'> <div class='tab-menu-actions d-align-center'> <div class='tab-menu-action' data-tab='branches'> <a class="ui link button" href="/lbc-team/web3map/branches">管理</a> </div> <div class='tab-menu-action' data-tab='tags'> <a class="ui link button" href="/lbc-team/web3map/tags">管理</a> </div> </div> <div class='tab-menu-item' data-placeholder='搜索分支' data-tab='branches'> 分支 (1) </div> </div> <div class='tab scrolling menu' data-tab='branches' id='branches_panel'> <div data-value="main" class="item"><span>main</span></div> </div> </div> </div> <style> .iconfont.icon-shieldlock { color: #8c92a4; } .dropdown-search-icon { position: absolute; top: 8px; left: 11px; } </style> <style>

git-project-branch .project-branch-tab-menu {

width: 400px !important;
margin: 0 16px !important;
padding-left: 0px !important;
padding-right: 0px !important;
border-bottom: 1px solid #dfe3e9 !important; }

git-project-branch .tab-menu-actions {

position: absolute;
right: 0px !important;
bottom: 0.357em; }

git-project-branch .tab-menu-action {

position: relative !important;
right: 0px !important;
bottom: 0px !important; }

git-project-branch .menu::after {

display: none !important; }

</style> <script> var $branchesDropdown = $('#branches_panel'); var $tagsDropdown = $('#tags_panel'); var $searchNameInput = $('.search-branch'); var concurrentRequestLock = false; var filterXSS = window.filterXSS; var search_text = ""; var branch_page_number = 1; var branch_total_pager = Math.ceil(1 / 20) || 1

var flag_is_loading = false; var flag_page_number = 1; var flag_total_pager = Math.ceil(0 / 20) || 1

$branchesDropdown.scroll(function() { var branchesPanel = document.getElementById('branches_panel'); var numOfBranches = $branchesDropdown.children().length; if (branchesPanel.clientHeight + branchesPanel.scrollTop + 37 > branchesPanel.scrollHeight && numOfBranches < 1) { debounceLoadMoreBranches.call(); } }); function resetFlagVal() { flag_is_loading = false; flag_page_number = 1; flag_total_pager = 1;

concurrentRequestLock = false
search_text = "";
branch_page_number = 1;
branch_total_pager = 1

} $searchNameInput.on('input', window.globalUtils.debouce(function (e) { resetFlagVal() var $currentTab = $('.tab-menu-action.active'); var numOfBranches = $branchesDropdown.children().length; var searchWord = $searchNameInput.val().trim(); search_text = searchWord if($currentTab.data('tab') === 'branches') { if (searchWord !== "") { loadData(searchWord,1); } else { loadData(); } } var numOfTags = $tagsDropdown.children().length; if($currentTab.data('tab') === 'tags') { if (searchWord !== "") { fetchTags(searchWord,1); } else { fetchTags(); } } }, 500));

function toggleNoResultView($popPanel) { let no_data_html= &lt;div class='mt-1 mb-1 d-flex-center'> &lt;span>暂无数据&lt;/span> &lt;/div>   $popPanel.append(no_data_html) } var debounceLoadMoreBranches = window.globalUtils.debouce(function () { if (concurrentRequestLock) return; branch_page_number += 1; if (branch_page_number > branch_total_pager) return; loadData(search_text, branch_page_number); }, 350);

function loadData(search, page) { if (concurrentRequestLock) { return; } concurrentRequestLock = true;

var searchParams = search || "";
var pageParams = page || 1;
$.ajax({
  url: "/" + gon.user_project + "/branches/names.json",
  type: 'GET',
  data: {
    search: searchParams,
    page: pageParams,
  },
  dataType: 'json',
  success: function (data) {
    branch_total_pager = data.total_pages;
    var html = '';

    if (pageParams === 1) {
      $branchesDropdown.empty();
    }
    data.branches.forEach(function (branch) {
      var protectRule = '';
      var branchName = filterXSS(branch.name);
      if(branch.branch_type.value === 1) {
        var rule = filterXSS(branch.protection_rule.wildcard);
        protectRule = `&lt;i
            class="iconfont icon-shieldlock protected-branch-popup"
            data-title="受保护分支"
            data-content='保护规则: ${rule}'
          >
          &lt;/i>`
      }
      html += `&lt;div data-value='${branchName}' class="item">
                &lt;span>${branchName}&lt;/span> ${protectRule}
                &lt;/div>`
    });
    $branchesDropdown.append(html);
    $('.protected-branch-popup').popup()
    if (pageParams === 1 && data.count === 0) {
      toggleNoResultView($branchesDropdown);
    }
  },
  complete: function () {
    concurrentRequestLock = false;
  }
});

}

$tagsDropdown.scroll(function() { var tagsPanel = document.getElementById('tags_panel'); var numOfTags = $tagsDropdown.children().length; if (tagsPanel.clientHeight + tagsPanel.scrollTop + 37 > tagsPanel.scrollHeight && numOfTags < 0) { debounceLoadMore.call(); } }); var debounceLoadMore = window.globalUtils.debouce(function () { if (flag_is_loading) return; flag_page_number += 1; if (flag_page_number > flag_total_pager) return; fetchTags(search_text, flag_page_number); }, 350);

function fetchTags(search, page) { var searchParams = search || ""; var pageParams = page || 1;

if (flag_is_loading) return;
flag_is_loading = true;

$.ajax({
  url: "/" + gon.user_project + "/tags/names.json",
  data: {
    search: searchParams,
    page: pageParams,
  },
  type: "GET",
  xhrFields: {
    withCredentials: true,
  },
  success: function (data) {
    flag_total_pager = data.total_pages;
    if (pageParams === 1) {
      $tagsDropdown.html('');
    }
    data.tags.forEach((tag) => {
      const itemDiv = document.createElement('div');
      itemDiv.classList.add('item');
      itemDiv.setAttribute('data-value', tag.name);
      itemDiv.innerText = window.filterXSS(tag.name);
      $tagsDropdown.append(itemDiv)
    });
    if (pageParams === 1 && data.count === 0) {
      toggleNoResultView($tagsDropdown);
    }
  },
  error: function () {
  },
  complete: function () {
    flag_is_loading = false;
  },
});

} $('.project-branch-tab-menu').on('click','.tab-menu-item', function (e) { var $currentTab = $(this).data('tab') if($currentTab === 'branches') { $searchNameInput.val('') search_text = ''; loadData() } if($currentTab === 'tags') { $searchNameInput.val('') search_text = ''; fetchTags(); } }) </script>

<script> $(function () { Gitee.initTabsInDropdown($('#git-project-branch').dropdown({ fullTextSearch: true, selectOnKeydown: false, action: function (text,value,el) { var oItemOrInitObject = el[0] || el var isNotSelect = oItemOrInitObject.dataset.tab && oItemOrInitObject.dataset.tab === 'branches' if(isNotSelect){ console.warn("You didn't choose a branch") return } var path = $('#path').val(); var href = ['/lbc-team/web3map/tree', encodeURIComponent(value), path].join('/'); window.location.href = href; return true }, onNoResults: function (searchTerm) { //未找到结果 return true }, })); $('.protected-branch-popup').popup() }) </script>

</div> </div> <div class='git-project-right-actions pull-right'> <div class='ui orange button' id='btn-dl-or-clone'> 克隆/下载 <i class='dropdown icon'></i> </div> <div class='ui small modal' id='git-project-download-panel'> <i class='iconfont icon-close close'></i> <div class='header'> 克隆/下载 </div> <div class='content'> <div class='ui secondary pointing menu mb-2 menu-container'> <a class='item active' data-text='' data-type='http' data-url='https://gitee.com/lbc-team/web3map.git'>HTTPS&lt;/a> <a class='item' data-text='' data-type='ssh' data-url='git@gitee.com:lbc-team/web3map.git'>SSH</a> <a class='item' data-text="该仓库未启用SVN访问,请仓库管理员前往【<a target='_blank' href=/lbc-team/web3map/settings#function>仓库设置</a>】开启。" data-type='svn' data-url=''>SVN</a> <a class='item' data-text="该仓库未启用SVN访问,请仓库管理员前往【<a target='_blank' href=/lbc-team/web3map/settings#function>仓库设置</a>】开启。" data-type='svn_ssh' data-url=''>SVN+SSH</a> <a class="ui basic orange button button-box unlogin-download-btn" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="克隆/下载" sa_referrer_type="其他" href="javascript:void(0);"><i class='icon download'></i> 下载ZIP </a><div class='ui custom popup popup'> <div class='popup-container actions'> <div class='content'> 该操作需登录 Gitee 帐号,请先登录后再操作。 </div> <a class="ui orange button ok icon" href="/login?from=download_repository_zip">立即登录 </a><a class="ui blank button cancel" href="/signup?from=download_repository_zip">没有帐号,去注册 </a></div> </div> </div> <div class='ui fluid right labeled small input download-url-panel mb-2'> <input type="text" name="project_url_clone" id="project_url_clone" value="https://gitee.com/lbc-team/web3map.git" onclick="focus();select()" readonly="readonly" /> <div class='ui basic label copy-icon-box'> <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#project_url_clone' id='btn-copy-project_clone_url1'></i> </div> </div> <div class='tip-box mb-2'> 提示 </div> <div class='mb-1 clone-url-title'> 下载代码请复制以下命令到终端执行 </div> <div class='ui fluid right labeled small input download-url-panel mb-2'> <input type="text" name="project_clone_url" id="project_clone_url" value="https://gitee.com/lbc-team/web3map.git" onclick="focus();select()" readonly="readonly" /> <div class='ui basic label copy-icon-box'> <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#project_clone_url' id='btn-copy-project_clone_url'></i> </div> </div> <div class='ui fluid right labeled warning-text forbid-warning-text'>

</div> <div class='http-ssh-item mb-2'> <div> 为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置 </div> <div class='textarea-box mt-2'> <textarea class='textarea-content-box' id='global-config-clone' readonly>git config --global user.name userName &#10git config --global user.email userEmail</textarea> <i class='icon iconfont icon-clone mr-2 btn-copy-clone text-dark' data-clipboard-target='#global-config-clone' id='btn-copy-global-config'></i> </div> </div> <div class='ssh-item item-panel-box'> <div class='mb-2'> 初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置 </div> <div class='mb-1'> <span>1</span> 生成 RSA 密钥 </div> <div class='ui fluid right labeled small input mb-2'> <input type="text" name="ssh_keygen_clone" id="ssh_keygen_clone" value="ssh-keygen -t rsa" onclick="focus();select()" readonly="readonly" /> <div class='ui basic label copy-icon-box'> <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#ssh_keygen_clone' id='btn-copy-ssh_keygen'></i> </div> </div> <div class='mb-1'> <span>2</span> 获取 RSA 公钥内容,并配置到<a href='/profile/sshkeys' target="_blank"> SSH公钥 </a> 中 </div> <div class='ui fluid right labeled small input mb-2'> <input type="text" name="id_rsa_clone" id="id_rsa_clone" value="cat ~/.ssh/id_rsa.pub" onclick="focus();select()" readonly="readonly" /> <div class='ui basic label copy-icon-box'> <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#id_rsa_clone' id='btn-copy-d_rsa'></i> </div> </div> </div> <div class='svn-item item-panel-box'> <div class='mb-1 mt-2'> 在 Gitee 上使用 SVN,请访问<a href='https://help.gitee.com/enterprise/code-manage/%E4%BB%A3%E7%A0%81%E6%89%98%E7%AE%A1/%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93/Gitee%20SVN%E6%94%AF%E6%8C%81' target="_blank"> 使用指南 </a> </div> </div> <div class='http-item item-panel-box'> <div class='mb-2 mt-2'> 使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议<a href='/profile/personal_access_tokens' target="_blank"> 配置并使用私人令牌 </a>替代登录密码进行克隆、推送等操作 </div> <div>Username for 'https://gitee.com': userName</div> <div class='mb-1'> <span>Password for 'https://userName@gitee.com':&lt;/span> <span>#</span> <span> 私人令牌 </span> </div> </div> </div> </div> <style>

git-project-download-panel {

top: 90px !important; }
#git-project-download-panel input {
  color: #40485b !important; }
#git-project-download-panel .textarea-box {
  width: 100%;
  height: 60px;
  color: #9d9d9d;
  border-radius: 2px;
  background-color: #F5F5F5 !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
#git-project-download-panel .menu-container {
  font-weight: bold;
  border-color: rgba(0, 0, 0, 0.1) !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; }
  #git-project-download-panel .menu-container .item {
    padding: 7px 12px !important; }
#git-project-download-panel .hr-item {
  color: rgba(39, 41, 43, 0.15) !important; }
#git-project-download-panel .textarea-content-box {
  width: 100%;
  height: 60px;
  resize: none;
  border: 0px !important;
  background-color: #F5F5F5 !important;
  color: #40485b !important; }
#git-project-download-panel .btn-copy-clone {
  cursor: pointer;
  color: rgba(0, 0, 0, 0.87) !important; }
#git-project-download-panel .copy-icon-box {
  background-color: #F5F5F5 !important;
  border-left: 0px !important; }
#git-project-download-panel .button-box {
  border: 0px !important;
  float: right !important;
  padding-right: 0 !important; }
#git-project-download-panel .tip-box {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
  padding-bottom: 4px;
  font-weight: 700; }
#git-project-download-panel .popup-container {
  padding: 8px 12px 4px 12px;
  text-align: center;
  font-size: 14px; }
  #git-project-download-panel .popup-container .ok {
    margin: 12px auto;
    width: 25%;
    min-width: 125px;
    display: block; }
  #git-project-download-panel .popup-container .cancel {
    margin-left: 0; }

</style> <script> $(function () { var $btnClone = $('#btn-dl-or-clone') var $modalDownload = $('#git-project-download-panel'); var $input = $('#project_clone_url') var $inputUrl = $('#project_url_clone') var cloneUrlTitle= $('.clone-url-title')

$('#btn-dl-or-clone').on('click', function (e) {
  e.preventDefault();
  $modalDownload.modal('show');
})

$modalDownload.find('.menu > .item').on('click', function(e) {
  var $item = $(this).addClass('active');
  $item.siblings().removeClass('active');
  var dataUrl = $item.attr('data-url');
  var cloneUrl = $item.attr('data-url');
  var dataType = $item.attr('data-type')
  var cloneToLocal = '下载代码请复制以下命令到终端执行'
  if(dataType=='http'){
    $modalDownload.find('.http-item').show();
    $('.content > .item-panel-box:not(.http-item)').hide();
    $modalDownload.find('.http-ssh-item').show();
    cloneUrl = 'git clone '+dataUrl
  }else if(dataType=='ssh'){
    $modalDownload.find('.ssh-item').show();
    $('.content > .item-panel-box:not(.ssh-item)').hide();
    $modalDownload.find('.http-ssh-item').show();
    cloneUrl = 'git clone '+dataUrl
  }else if(dataType=='svn') {
    $('.content > .item-panel-box:not(.svn-item)').hide();
    $modalDownload.find('.svn-item').show();
    $modalDownload.find('.http-ssh-item').hide();
    cloneUrl = 'svn checkout '+dataUrl
  }else {
    $('.content > .item-panel-box:not(.svn-item)').hide();
    $modalDownload.find('.svn-item').show();
    $modalDownload.find('.http-ssh-item').hide();
    cloneUrl = 'svn checkout '+dataUrl
  }
  if (dataUrl) {
    $modalDownload.find('.download-url-panel').show();
    $input.val(cloneUrl);
    $inputUrl.val(dataUrl)
    cloneUrlTitle.show();
    $modalDownload.find('.forbid-warning-text').html('');
  } else {
    $modalDownload.find('.download-url-panel').hide();
    //$modalDownload.find('.svn-item').hide();
    cloneUrlTitle.hide();
    $modalDownload.find('.forbid-warning-text').html($item.attr('data-text') || '');
  }
  $.cookie('remote_way', $item.attr('data-type'), { expires: 365, path: '/' });
}).filter('[data-type="' + ($.cookie('remote_way') || 'http') + '"]').trigger('click');

$('.btn-copy-clone').popup({
  content: '点击复制',
}).on('click', function(e) {
  e.stopPropagation();
  return false;
}).each(function(_, btnCopy) {
  var $btnCopy = $(btnCopy);
  new Clipboard(btnCopy).on('success', function() {
    $btnCopy.popup('destroy').popup({
      content: '已复制',
      on: 'manual'
    }).popup('show');
    setTimeout(function() {
      $btnCopy.popup('destroy').popup({
        content: '点击复制'
      });
    }, 2000);
  });
});
var $downloadBtn= $('.unlogin-download-btn')
var $popupContainer = $('.popup-container')
$downloadBtn.popup({
  popup : $('.custom.popup'),
  position   : 'bottom right',
}).on('click', function(e) {
  $downloadBtn.popup('destroy').popup({
    popup : $('.custom.popup'),
    on: 'manual',
    position   : 'bottom right',
  }).popup('show');
  setTimeout(function() {
    $downloadBtn.popup('hide');
  }, 2000);

})

}) </script>

</div> <div class='d-inline pull-right' id='git-project-root-actions'> <div class='ui horizontal list repo-action-list d-flex d-align-center repo-action-list-right'> <div class='item search-box-container'> <div class='ui icon input search-input' id='search-box'> <input class='search-file-name' id='search-file-name' maxlength='40' placeholder='搜索文件' type='text'> </div> <a class='d-flex d-align-center' id='search-file-btn'> <span class='iconify' data-icon='gitee:search' style='font-size: 16px;color:#979CAC;margin-right:10px'></span> </a> <div class='filter-file-container' style='display: none;'></div> </div> <script> $('#git-tree-file').dropdown({ action: 'hide', onHide: function () { $('.plus-box').removeClass('click-active') }, onShow: function () { $('.plus-box').addClass('click-active') } }); $('.disabled-upload-readonly').popup({ content: "只读目录不允许上传文件", className: { popup: 'ui popup', }, position: 'bottom center', }) $('.disabled-create-folder').popup({ content: "只读目录不允许创建目录", className: { popup: 'ui popup', }, position: 'bottom center', }) $('.disabled-create-file').popup({ content: "只读目录不允许创建文件", className: { popup: 'ui popup', }, position: 'bottom center', }) $('.disabled-create-submodule').popup({ content: "只读目录不允许创建子模块", className: { popup: 'ui popup', }, position: 'bottom center', }) $('.disabled-upload-readonly, .disabled-create-folder, .disabled-create-file, .disabled-create-submodule').click(function() { return false }) </script> <style> .disabled-upload-readonly, .disabled-create-file, .disabled-create-folder, .disabled-create-submodule { background-color: #dcddde !important; color: rgba(0, 0, 0, 0.4) !important; opacity: 0.3 !important; background-image: none !important; -webkit-box-shadow: none !important; box-shadow: none !important; } </style>

<div class='item toschina-content__hidden webIDE-box' data-content='Web IDE'> <a class="ui d-flex d-align-center webide ml-1" target="_blank" href="/-/ide/project/lbc-team/web3map/edit/main/-/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md"><span class='iconify' data-icon='gitee:computer' style='font-size: 16px;color:#979CAC;margin-right:12px'></span> </a></div> </div> <script> $('.webIDE-box').popup() </script> <script src="https://cn-assets.gitee.com/assets/file_search/app-7488efdce7782c80c4936145b910d07e.js">&lt;/script>

</div> <div class='breadcrumb_path path-breadcrumb-contrainer' id='git-project-breadcrumb'> <div class='ui breadcrumb path project-path-breadcrumb' id='path-breadcrumb'> <a data-direction="back" class="section repo-name" style="font-weight: bold" href="/lbc-team/web3map/tree/main">web3map </a><div class='divider'> / </div> <strong> <a data-direction="back" class="section" href="/lbc-team/web3map/tree/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8"><span class='cblue'> 去中心化存储 </span> </a></strong> <div class='divider'> / </div> <strong> <a data-direction="back" class="section" href="/lbc-team/web3map/tree/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO"><span class='cblue'> AO </span> </a></strong> <div class='divider'> / </div> <strong> Readme.md </strong> <i class='iconfont icon-clone' data-clipboard-text='去中心化存储/AO/Readme.md' id='btn-copy-file-path'></i> </div> <style>

btn-copy-file-path {

vertical-align: middle;
cursor: pointer;

} </style> <script> $btnCopy = $('#btn-copy-file-path') $btnCopy.popup({ content: '复制路径' })

if ($btnCopy[0]) { new Clipboard($btnCopy[0]).on('success', function() { $btnCopy.popup('destroy').popup({ content: '已复制', on: 'manual' }).popup('show'); setTimeout(function () { $btnCopy.popup('destroy').popup({ content: '复制路径' }); }, 2000) }); } </script>

</div> <div class='ui horizontal list repo-action-list branches-tags' style='display: none;'> <div class='item'> <a class="ui blank button" href="/lbc-team/web3map/branches"><i class='iconfont icon-branches'></i> 分支 1 </a></div> <div class='item mr-3'> <a class="ui blank button" href="/lbc-team/web3map/tags"><i class='iconfont icon-tag'></i> 标签 0 </a></div> </div> </div> <script src="https://cn-assets.gitee.com/webpacks/parse_blob_form_scheme-c196873aa4bc8cd09e53.bundle.js">&lt;/script> <script> if(window.gon.locale == 'en') $('.branches-tags').css('margin-top', '12px') // 仓库页面切换路径时: 刷新 yaml 错误检查 $(window).on('pjax-complete:file-show', function () { window.parseBlobFormScheme && window.parseBlobFormScheme($('.js-blob-data').data('blob')); }); </script>

<style> .ui.dropdown .menu > .header { text-transform: none; } </style> <script> $(function () { var $tip = $('#apk-download-tip'); if (!$tip.length) { return; } $tip.find('.btn-close').on('click', function () { $tip.hide(); }); }); (function(){ function pathAutoRender() { var $parent = $('#git-project-bread'), $child = $('#git-project-bread').children('.ui.horizontal.list'), mainWidth = 0; $child.each(function (i,item) { mainWidth += $(item).width() }); $('.breadcrumb.path.fork-path').remove(); if (mainWidth > 995) { $('#path-breadcrumb').hide(); $parent.append('<div class="ui breadcrumb path fork-path">' + $('#path-breadcrumb').html() + '<div/>') } else { $('#path-breadcrumb').show(); } } window.pathAutoRender = pathAutoRender; pathAutoRender(); })(); </script>

<div class='row column tree-holder' id='tree-holder'> <div class='tree-content-holder' id='tree-content-holder'> <div class='file_holder'> <div class='file_title'> <div class='blob-header-title'> <div class='blob-description'> <i class="iconfont icon-file"></i> <span class='file_name' title='Readme.md'> Readme.md </span> <small>0 Bytes</small> </div> <div class='options'><div class='ui mini buttons basic'> <textarea name="blob_raw" id="blob_raw" style="display:none;"> </textarea> <a class="ui button" id="copy-text" href="#">一键复制</a> <a class="ui button edit-blob" title="只有登陆后才可以编辑" href="/lbc-team/web3map/edit/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md">编辑</a> <a class="ui button edit-raw" target="_blank" href="/lbc-team/web3map/raw/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md">原始数据</a> <a class="ui button edit-blame" href="/lbc-team/web3map/blame/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md">按行查看</a> <a class="ui button edit-history" href="/lbc-team/web3map/commits/main/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E5%AD%98%E5%82%A8/AO/Readme.md">历史</a> </div> <script> window.gon.aiCodeParams = { pathWithNamespace: lbc-team/web3map, blob: $("#blob_raw").val(), fileName: 去中心化存储/AO/Readme.md, id: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391, timeStamp: 1723806280, userId: `, sign:IUx0nCcP8KzrH+cttSTWC38AIMGMfKRVoKM3kuJknkv0UEQvCL8UCN7Xy6XXEX33qj9co1JKPN1Qy/Q72luvB6tpNKtr3G3NghPvQOQ67QmWtYRbTOqKQ/Nefy+l2i7jpTdf8wSK5qxV9SWzTa1yDw==, } window.gon.blobName ="Readme.md"` $('.js-code-parsing').dropdown({ on: 'hover', action: 'hide', onHide: function () { }, onShow: function () { } }); $(".ai-code-dropdown-box").find('.item').on("click", function (e) { window.jqxhr && window.jqxhr.abort(); window.aiLoadingTimer && clearTimeout(window.aiLoadingTimer); aiReqLoading = false

window.Gitee.setFullscreen(true);
$(".side-toolbar").hide();
var $siteContent = $(".site-content");
// 获取最小高度
var minHeight = parseInt($siteContent.css("min-height"));
// 获取当前高度
var currentHeight = parseInt($siteContent.height());
if (minHeight + 1 > currentHeight) {
  $("#code-parsing").css("height", currentHeight);
}

$("#git-project-container").addClass('git-transition-width');
$("#project-wrapper").css("marginTop", "-24px");
//$("#git-project-container").removeClass("sixteen wide column");
//$("#git-project-container").addClass("twelve wide column");
if(!$("#code-parsing").hasClass("code-parsing-box")){
  $("#git-project-container").attr("style", "width: 75% !important;");
}
$("#git-footer-main").css("margin-top", "14px");
$("#code-parsing").addClass("code-parsing-box");
$(".code-parsing-content").hide();
$(".skeleton").show();
$(".ai_code_btns_simple").hide();

$("#code-parsing").find(".markdown-body").innerHTML='';

aiCodeType = $(this).data("value");
aiSubTitle = $(this).data("text");
handleAiReqInit()

}); </script> <script> "use strict"; try { if((gon.wait_fork!=undefined && gon.wait_fork==true) || (gon.wait_fetch!=undefined && gon.wait_fetch==true)){ $('.edit-blob').popup({content:"当前仓库正在后台处理中,暂时无法编辑", on: 'hover', delay: { show: 200, hide: 200 }}); $('.edit-blob').click(function(e){ e.preventDefault(); }) }

var setUrl = function() {
  var params = window.location.search
  if (params==undefined || $.trim(params).length==0) return;
  $('span.options').children('.basic').find('a').each(function(index,ele){
    var origin_href = $(ele).attr('href');
    if (origin_href!="#" && origin_href.indexOf('?') == -1){
      $(ele).attr('href',origin_href+params);
    }
  });
}

setUrl();

var clipboard = null,
    $btncopy  = $("#copy-text");

clipboard = new Clipboard("#copy-text", {
  text: function(trigger) {
    return $("#blob_raw").val();
  }
})

clipboard.on('success', function(e) {
  $btncopy.popup('hide');
  $btncopy.popup('destroy');
  $btncopy.popup({content: '已复制', position: 'bottom center'});
  $btncopy.popup('show');
})

clipboard.on('error', function(e) {
  var giteeModal = new GiteeModalHelper({okText: '确定'});
  giteeModal.alert("一键复制", '复制失败,请手动复制');
})

$(function() {
  $btncopy.popup({
    content: '点击复制',
    position: 'bottom center'
  })
})

} catch (error) { console.log('blob/action error:' + error); }

$(".disabled-edit-readonly").popup({ content: "只读文件不可编辑", className: { popup: "ui popup", }, position: "bottom center", }); $(".disabled-edit-readonly, .disabled-edit-status").click(function () { return false; }); $(".has_tooltip").popup({ position: "top center", }); </script> <style> .disabled-edit-readonly, .disabled-edit-status { background-color: #dcddde !important; color: rgba(0, 0, 0, 0.4) !important; opacity: 0.3 !important; background-image: none !important; -webkit-box-shadow: none !important; box-shadow: none !important; cursor: default !important; }

.drawio-iframe-code-card { position: relative; } .drawio-iframe-code-card textarea { width: 100%; height: 140px; resize: none; } .drawio-iframe-code-card .icon-clone { position: absolute; right: 32px; bottom: 32px; } .drawio-iframe-code-card iframe { border-radius: 2px; border: 1px solid #DEDEDF; } </style> </div> </div> <div class='blob-header-title mt-1 ubblock_tip'> </div> <div class='contributor-description'><span class='recent-commit' style='margin-top: 0.7rem'> <a class="commit-author-link js-popover-card " data-username="xilibi2003" href="/xilibi2003">熊丽兵</a> <span>提交于</span> <span class='timeago commit-date' title='2024-06-17 19:03:50 +0800'> 2024-06-17 19:03 </span> . <a href="/lbc-team/web3map/commit/1c8862b38d8e8441c3832227ed7c08697f982282">add rollup des</a> </span> </div> </div> <div class='clear

✍️更新/纠错
登链社区