<!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"></script> <script src="https://cn-assets.gitee.com/assets/static/sentry-5.1.0-a823fb0be1b61c5d7ca4a89f0536cb0a.js"></script> <script src="https://cn-assets.gitee.com/assets/application-41226c6a36ee674dcabaa6eb9b9e2a26.js"></script> <script src="https://cn-assets.gitee.com/assets/lib/jquery.timeago.zh-CN-4a4818e98c1978d2419ab19fabcba740.js"></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"></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"></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"><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"><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: "在全站搜索 <b class='hl'>" + query +"</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"><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"><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"><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"><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"><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;
}
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>
width: 400px !important;
margin: 0 16px !important;
padding-left: 0px !important;
padding-right: 0px !important;
border-bottom: 1px solid #dfe3e9 !important; }
position: absolute;
right: 0px !important;
bottom: 0.357em; }
position: relative !important;
right: 0px !important;
bottom: 0px !important; }
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= <div class='mt-1 mb-1 d-flex-center'> <span>暂无数据</span> </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 = `<i
class="iconfont icon-shieldlock protected-branch-popup"
data-title="受保护分支"
data-content='保护规则: ${rule}'
>
</i>`
}
html += `<div data-value='${branchName}' class="item">
<span>${branchName}</span> ${protectRule}
</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</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 
git 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':</span> <span>#</span> <span> 私人令牌 </span> </div> </div> </div> </div> <style>
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"></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>
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"></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