狼愛(ài)上貍

          我胡漢三又回來(lái)了

          2019年12月21日 #

          centos8 安裝 docker

          https://www.cnblogs.com/zbseoag/p/11736006.html

          posted @ 2020-05-06 12:57 狼愛(ài)上貍 閱讀(400) | 評(píng)論 (3)編輯 收藏

          firefox 翻譯插件

          作者:AsReader
          鏈接:https://www.zhihu.com/question/64845885/answer/1122345134
          來(lái)源:知乎

          posted @ 2020-04-18 09:45 狼愛(ài)上貍 閱讀(295) | 評(píng)論 (0)編輯 收藏

          鼠標(biāo)在Solaris 11虛擬機(jī)上不起作用

          https://kb.vmware.com/s/article/2040498

          posted @ 2020-03-22 08:22 狼愛(ài)上貍 閱讀(299) | 評(píng)論 (0)編輯 收藏

          solaris11.4

          https://www.oracle.com/solaris/solaris11/downloads/solaris11-vm-templates-downloads.html

          posted @ 2020-03-21 21:43 狼愛(ài)上貍 閱讀(247) | 評(píng)論 (0)編輯 收藏

          solaris11.3下載

          http://download.oracle.com/otn/solaris/11_3/sol-11_3-vbox.ova

          posted @ 2020-03-20 21:52 狼愛(ài)上貍 閱讀(566) | 評(píng)論 (0)編輯 收藏

          linux(centos7)安裝jdk8--附帶oracle賬號(hào)

          https://www.cnblogs.com/chaos-li/p/11970713.html

          posted @ 2020-03-20 18:53 狼愛(ài)上貍 閱讀(192) | 評(píng)論 (0)編輯 收藏

          Flutter 常用框架

          https://www.jianshu.com/p/7403371162c1

          posted @ 2020-03-19 17:10 狼愛(ài)上貍 閱讀(171) | 評(píng)論 (0)編輯 收藏

          IPFS參考網(wǎng)關(guān)

          https://ipfs.github.io/public-gateway-checker/

          posted @ 2020-03-14 11:01 狼愛(ài)上貍 閱讀(480) | 評(píng)論 (0)編輯 收藏

          安裝配置Shibboleth

          0.前言

          本文介紹了如何搭建Shibboleth,實(shí)現(xiàn)Shibboleth+Ldap的SSO解決方案

          1.什么是Shibboleth

          Shibboleth是一個(gè)基于標(biāo)準(zhǔn)的,實(shí)現(xiàn)組織內(nèi)部或跨組織的網(wǎng)頁(yè)單點(diǎn)登錄的開(kāi)源軟件包。它允許站點(diǎn)為處于私有保護(hù)方式下的受保護(hù)的在線資源做出被通知的認(rèn)證決定。

          Shibboleth軟件工具廣泛使用聯(lián)合的身份標(biāo)準(zhǔn),主要是OASIS安全聲稱標(biāo)記語(yǔ)言(SAML),來(lái)提供一個(gè)聯(lián)合單點(diǎn)登錄和屬性交換框架。一個(gè)用戶用他的組織的證書認(rèn)證,組織(或IdP)傳送最少的必要的身份信息給SP實(shí)現(xiàn)認(rèn)證決定。Shibboleth也提供擴(kuò)展的隱私功能,允許一個(gè)用戶和他們的主站點(diǎn)來(lái)控制釋放給每一個(gè)應(yīng)用的屬性。

          Shibboleth項(xiàng)目作為一個(gè)Internet2中間件活動(dòng)啟動(dòng)于2000年,這年晚些時(shí)候該項(xiàng)目和OASIS SAML工作組的工作相聯(lián)系。Shibboleth1.0 于2003年發(fā)布,并快速被全世界的研究和教育機(jī)構(gòu)使用。隨著2005年SAML2.0的發(fā)布,2006年Shibboleth2.0也發(fā)布,SAML標(biāo)準(zhǔn)升級(jí)到包含所有的多邊,由Shibboleth首創(chuàng)的元數(shù)據(jù)驅(qū)動(dòng)方法。

          Shibboleth作為開(kāi)源軟件開(kāi)發(fā),在Apache 軟件許可證下發(fā)布。關(guān)于個(gè)別部件的更多信息可以在產(chǎn)品頁(yè)面看到。

          2.安裝Shibboleth Identity Provider v3.2.1

          1. 切換成root
          sudo su 

          2.下載Shibboleth Identity Provider v3.2.1

          wget http://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-3.2.1.tar.gz tar -xzvf shibboleth-identity-provider-3.2.1.tar.gz cd shibboleth-identity-provider-3.2.1

          3.安裝Shibboleth Idenentity Provider:

          sh-3.2# ./install.sh  Source (Distribution) Directory (press <enter> to accept default): [/Users/zhaoyu.zhaoyu/Applications/shibboleth-identity-provider-3.3.2]  Installation Directory: [/opt/shibboleth-idp]  Hostname: [localhost.localdomain] testdomain.com SAML EntityID: [https://testdomain.com/idp/shibboleth]  Attribute Scope: [localdomain]  Backchannel PKCS12 Password:  Re-enter password:  Cookie Encryption Key Password:  Re-enter password:  Warning: /opt/shibboleth-idp/bin does not exist. Warning: /opt/shibboleth-idp/dist does not exist. Warning: /opt/shibboleth-idp/doc does not exist. Warning: /opt/shibboleth-idp/system does not exist. Warning: /opt/shibboleth-idp/webapp does not exist. Generating Signing Key, CN = testdomain.com URI = https://testdomain.com/idp/shibboleth ... ...done Creating Encryption Key, CN = testdomain.com URI = https://testdomain.com/idp/shibboleth ... ...done Creating Backchannel keystore, CN = testdomain.com URI = https://testdomain.com/idp/shibboleth ... ...done Creating cookie encryption key files... ...done Rebuilding /opt/shibboleth-idp/war/idp.war ... ...done  BUILD SUCCESSFUL Total time: 1 minute 14 seconds 

          (from now "{idp.home}" == /opt/shibboleth-idp/)
          4.導(dǎo)入 JST library (status界面會(huì)用到):

          cd /opt/shibboleth-idp/edit-webapp/WEB-INF/lib wget https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar cd /opt/shibboleth-idp/bin ./build.sh -Didp.target.dir=/opt/shibboleth-idp

          3.安裝指引

          3.1 安裝apache tomcat 8

          1.切換成root

          sudo su -

          2.修改tomcat的%{CATALINA_HOME}/conf/server.xml
          將8080端口和8443端口的地方分別改成80和443

           <Connector port="80" protocol="HTTP/1.1"                                                                                                    connectionTimeout="20000"                redirectPort="443" />

          3.生成證書文件

          [chengxu@local]keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "./tomcat.keystore" 輸入密鑰庫(kù)口令:   再次輸入新口令:  您的名字與姓氏是什么? [Unknown]:  cheng 您的組織單位名稱是什么? [Unknown]:  testdomain.com 您的組織名稱是什么? [Unknown]:  testdomain.com 您所在的城市或區(qū)域名稱是什么? [Unknown]:   您所在的省/市/自治區(qū)名稱是什么? [Unknown]:   該單位的雙字母國(guó)家/地區(qū)代碼是什么? [Unknown]:   CN=cheng, OU=testdomain.com, O=testdomain.com, L=Unknown, ST=Unknown, C=Unknown是否正確? []:    輸入 <tomcat> 的密鑰口令   (如果和密鑰庫(kù)口令相同, 按回車):   再次輸入新口令:  [chengxu@local]

          4.修改tomcat的%{CATALINA_HOME}/conf/server.xml,使支持https協(xié)議

          <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"                 clientAuth="false" sslProtocol="TLS"                  keystoreFile="/Users/chengxu/Shibboleth/tomcat/tomcat.keystore"                    keystorePass="xxx"/> 

          5.發(fā)布Idp Web Application到Tomcat 8 container

          vim %{CATALINA_HOME}/conf/Catalina/localhost/idp.xml
          <Context docBase="/opt/shibboleth-idp/war/idp.war"          privileged="true"          antiResourceLocking="false"          swallowOutput="true"/>

          4.配置host

          vim /etc/host 127.0.0.1 testdomain.com

          5.重啟tomcat
          %{CATALINA_HOME}/bin/catalina.sh stop
          %{CATALINA_HOME}/bin/catalina.sh start
          6.檢測(cè)是否服務(wù)啟動(dòng)正常
          訪問(wèn)https://testdomain/idp/status
          或者/opt/shibboleth-idp/bin; ./status.sh

          3.2 配置shibboleth連接ldap

          編輯修改ldap.properties

          vim /opt/shibboleth/conf/ldap.properties  idp.authn.LDAP.authenticator = bindSearchAuthenticator idp.authn.LDAP.ldapURL = ldap://ldap.example.it:389 idp.authn.LDAP.useStartTLS = false idp.authn.LDAP.useSSL = false idp.authn.LDAP.baseDN = cn=Users,dc=example,dc=org idp.authn.LDAP.userFilter = (uid={user}) idp.authn.LDAP.bindDN = cn=admin,cn=Users,dc=example,dc=org idp.authn.LDAP.bindDNCredential = ###LDAP ADMIN PASSWORD###

          6.修改shibboleth ldap配置

          vim /opt/shibboleth/conf/services.xml  把 <value>%{idp.home}/conf/attribute-resolver.xml</value> 改為 <value>%{idp.home}/conf/attribute-resolver-full.xml</value>
          vim /opt/shibboleth-idp/conf/attribute-resolver-full.xml  注釋掉下列代碼,如果已經(jīng)注釋掉了就不動(dòng)了(有些版本已經(jīng)注釋了)  <!-- <dc:StartTLSTrustCredential id="LDAPtoIdPCredential" xsi:type="sec:X509ResourceBacked">   <sec:Certificate>%     {idp.attribute.resolver.LDAP.trustCertificates}</sec:Certificate>   </dc:StartTLSTrustCredential> -->

          重啟tomcat

          7.獲取idp metadata.xml
          https://testdomain.com/idp/shibboleth
          注意metadata.xml文件中的validUntil屬性,如果過(guò)期了則修改為未來(lái)的某個(gè)時(shí)間點(diǎn)

          4.小結(jié)

          至此我們完成了Shibboleth與LDAP集成的安裝過(guò)程

          下篇: 實(shí)現(xiàn)Shibboleth+Ldap到阿里云的單點(diǎn)登錄

          來(lái)自https://yq.aliyun.com/articles/350531?tdsourcetag=s_pcqq_aiomsg&do=login&accounttraceid=87b0f203-5d81-4cb7-a986-49615e3962e2&do=login&do=login

          posted @ 2020-03-09 18:20 狼愛(ài)上貍 閱讀(958) | 評(píng)論 (0)編輯 收藏

          Shibboleth IDP 的安裝和部署配置步驟

          https://blog.csdn.net/wwwcomy/article/details/49098961

          https://www.iteye.com/blog/lhy5201314-1171267

          posted @ 2020-03-08 23:21 狼愛(ài)上貍| 編輯 收藏

          Android Studio 以逍遙模擬器為模擬器

          在C盤根目錄下建立以下批處理文件:

          c:
          cd C:\Program Files\Microvirt\MEmu
          adb start-server
          c:
          cd C:\Android\Sdk\platform-tools
          adb  connect 127.0.0.1:21503
          cd\

          在命令提示符(管理員)下運(yùn)行它就OK了。

          posted @ 2020-03-07 19:08 狼愛(ài)上貍 閱讀(321) | 評(píng)論 (0)編輯 收藏

          Android SDK搬家

          flutter config --android-sdk 自己的android sdk路徑Android SDK默認(rèn)的安裝地址為:
          C:\Users\Administrator\AppData\Local\Android\SDK
          現(xiàn)需要把它搬到 C:\Android\Sdk
          操作如下:
          1.把C:\Users\Administrator\AppData\Local\Android\SDK剪切復(fù)制到C:\Android\Sdk;
          2.在FLutter sdk 目錄下運(yùn)行如下命令:
          flutter config --android-sdk C:\Android\Sdk
          3.在環(huán)境變量中把ANDROID_HOME改為C:\Android\Sdk;
          重啟,這樣就OK了。

          posted @ 2020-03-07 18:59 狼愛(ài)上貍 閱讀(216) | 評(píng)論 (0)編輯 收藏

          Android-X86網(wǎng)絡(luò)設(shè)置

          https://blog.csdn.net/weixin_30598225/article/details/98351753?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

          posted @ 2020-03-03 18:43 狼愛(ài)上貍 閱讀(775) | 評(píng)論 (0)編輯 收藏

          VM安裝Android

          https://baijiahao.baidu.com/s?id=1630789160989369444&wfr=spider&for=pc

          安裝后還是無(wú)法聯(lián)網(wǎng)的,需要以下步驟才能聯(lián)網(wǎng):
          設(shè)置--》網(wǎng)絡(luò)和互聯(lián)網(wǎng)--》私人DNS -->把自動(dòng)改為關(guān)閉
          就能上網(wǎng)了。

          posted @ 2020-03-03 16:20 狼愛(ài)上貍 閱讀(126) | 評(píng)論 (0)編輯 收藏

          【linux】CentOS 查看系統(tǒng)時(shí)間,修改時(shí)區(qū)

          【linux】CentOS 查看系統(tǒng)時(shí)間,修改時(shí)區(qū)

           

           

          ===============CentOS 7.6================

          1.查看系統(tǒng)時(shí)間

          date

           

          查看當(dāng)前系統(tǒng)時(shí)間以及時(shí)區(qū)
          結(jié)果是:

          Mon Jul 8 09:23:31 UTC 2019

           

           

          2.更改系統(tǒng)時(shí)間時(shí)區(qū)

          timedatectl set-timezone Asia/Shanghai

           

          3.再次查看

          date

          結(jié)果是:

          Mon Jul  8 17:25:28 CST 2019

           

           

          4.可以重啟后查看,防止重啟后失效

          reboot

           

           

          =======================

          posted @ 2020-03-02 21:11 狼愛(ài)上貍 閱讀(220) | 評(píng)論 (0)編輯 收藏

          MacOS設(shè)置自動(dòng)登錄

          https://jingyan.baidu.com/article/59a015e375e45af794886582.html

          posted @ 2020-03-02 19:47 狼愛(ài)上貍 閱讀(126) | 評(píng)論 (0)編輯 收藏

          VM安裝CentOS8


          https://blog.csdn.net/BryantJamesHua/article/details/101480034
          https://www.cnblogs.com/fanzhenyong/p/11616192.html

          posted @ 2020-03-02 18:34 狼愛(ài)上貍 閱讀(106) | 評(píng)論 (0)編輯 收藏

          VM安裝macOS10.15 VMware TOOLS

          https://blog.csdn.net/qq_41855420/article/details/102756313

          注意要先把虛擬機(jī)的安裝光盤退出。

          posted @ 2020-03-01 20:45 狼愛(ài)上貍 閱讀(3091) | 評(píng)論 (0)編輯 收藏

          VM安裝macOS10.15


          https://blog.csdn.net/qq_41855420/article/details/102750895?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

          在這個(gè)地方,要把服務(wù)里的那幾個(gè)VM啟動(dòng),否則DHCP無(wú)法安裝。
          ⑧、設(shè)置黑蘋果Catalina 10.15系統(tǒng)

          posted @ 2020-03-01 20:43 狼愛(ài)上貍 閱讀(179) | 評(píng)論 (0)編輯 收藏

          Flutter打包Apk

          https://www.jianshu.com/p/d58dab805ca6

          keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
          apk 輸出在:
          C:\Users\Administrator\AndroidStudioProjects\flutter_app\build\app\outputs\apk\release
          key.properties
          storePassword=123456
          keyPassword=123456
          keyAlias=key
          storeFile=
          C:/Users/Administrator/AndroidStudioProjects/flutter_app/key.jks

          b
          uild.gradle

          def localProperties = new Properties()
          def localPropertiesFile = rootProject.file('local.properties')
          if (localPropertiesFile.exists()) {
          localPropertiesFile.withReader('UTF-8') { reader ->
          localProperties.load(reader)
          }
          }

          def flutterRoot = localProperties.getProperty('flutter.sdk')
          if (flutterRoot == null) {
          throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
          }

          def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
          if (flutterVersionCode == null) {
          flutterVersionCode = '1'
          }

          def flutterVersionName = localProperties.getProperty('flutter.versionName')
          if (flutterVersionName == null) {
          flutterVersionName = '1.0'
          }

          apply plugin: 'com.android.application'
          apply plugin: 'kotlin-android'
          apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"


          def keystorePropertiesFile = rootProject.file("key.properties")
          def keystoreProperties = new Properties()
          keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
          android {
          compileSdkVersion 28

          sourceSets {
          main.java.srcDirs += 'src/main/kotlin'
          }

          lintOptions {
          disable 'InvalidPackage'
          }

          defaultConfig {
          // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
          applicationId "com.example.flutter_app"
          minSdkVersion 16
          targetSdkVersion 28
          versionCode flutterVersionCode.toInteger()
          versionName flutterVersionName
          testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
          }

          signingConfigs {
          release {
          keyAlias keystoreProperties['keyAlias']
          keyPassword keystoreProperties['keyPassword']
          storeFile file(keystoreProperties['storeFile'])
          storePassword keystoreProperties['storePassword']
          }
          }

          buildTypes {
          release {
          // TODO: Add your own signing config for the release build.
          // Signing with the debug keys for now, so `flutter run --release` works.
          //signingConfig signingConfigs.debug
          signingConfig signingConfigs.release
          }
          }
          }

          flutter {
          source '../..'
          }

          dependencies {
          implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
          testImplementation 'junit:junit:4.12'
          androidTestImplementation 'androidx.test:runner:1.1.1'
          androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
          }

          posted @ 2020-02-29 11:48 狼愛(ài)上貍 閱讀(346) | 評(píng)論 (0)編輯 收藏

          Flutter實(shí)現(xiàn)Web環(huán)境配置

          參見(jiàn):
          https://www.jianshu.com/p/2893f2b52eee

          https://www.cnblogs.com/duanzb/p/11188979.html

          即是
          在PATH中增加2個(gè):
          C:\Flutter\flutter1.12.13\.pub-cache\bin

          C:\Flutter\flutter1.12.13\bin\cache\dart-sdk\bin

          posted @ 2020-02-25 18:18 狼愛(ài)上貍 閱讀(149) | 評(píng)論 (0)編輯 收藏

          flutter顯示Error: No pubspec.yaml file found.

          打開(kāi)項(xiàng)目總文件夾運(yùn)行,不要打開(kāi)上一級(jí)目錄運(yùn)行
          F:\fluterapp\hellow_horld(項(xiàng)目名)這里打開(kāi)
          F:\fluterapp 不要在這里打開(kāi)


          https://blog.csdn.net/qq_31659129/article/details/97244526

          posted @ 2020-02-25 12:47 狼愛(ài)上貍 閱讀(947) | 評(píng)論 (0)編輯 收藏

          Flutter編譯報(bào)錯(cuò):The method 'CachedNetworkImageProvider.load' has fewer positional

          將cached_network_image的版本號(hào)升級(jí)到2.0.0-rc


          https://blog.csdn.net/yinxing2008/article/details/103374996

          posted @ 2020-02-25 12:46 狼愛(ài)上貍 閱讀(404) | 評(píng)論 (0)編輯 收藏

          Flutter項(xiàng)目實(shí)戰(zhàn)之Flutter_Gank

          https://www.jianshu.com/p/1031f30dbb2e

          posted @ 2020-02-25 11:40 狼愛(ài)上貍 閱讀(141) | 評(píng)論 (0)編輯 收藏

          安裝node-canvas時(shí)win_delay_load_hook.c錯(cuò)誤

          解決辦法: 修改以下文件 C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_load_hook.c 增加以下代碼,到第一個(gè)#include前 #ifndef DELAYIMP_INSECURE_WRITABLE_HOOKS#define DELAYIMP_INSECURE_WRITABLE_HOOKS#endif 參考: https://github.com/nodejs/node-gyp/issues/949 https://github.com/Automattic/node-canvas/issues/619 ———————————————— 版權(quán)聲明:本文為CSDN博主「Amatig」的原創(chuàng)文章,遵循CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/cooltigerkin/article/details/51807588

          posted @ 2020-02-22 16:33 狼愛(ài)上貍 閱讀(339) | 評(píng)論 (0)編輯 收藏

          VS2015與Win10SDK的問(wèn)題

          VS2015最高支持14393版本的SDK,之后的從15063起就必須要VS2017,很多人出現(xiàn)VS找不到rc.ex和cl.exe的問(wèn)題,就是沒(méi)有安裝SDK或安裝了VS不支持的SDK版本;這個(gè)問(wèn)題有人在知乎上提問(wèn)過(guò)“如何將獨(dú)立安裝的win10SDK與vs2015建立聯(lián)系?“ VS2015不完全支持Win10的某些項(xiàng)目編譯,比如應(yīng)用商店應(yīng)用、1703、1709的驅(qū)動(dòng)程序,但是VS2017太難用了,所以我還是堅(jiān)持用2015 解決辦法: 卸載新版本W(wǎng)inSDK,安裝14393版本的SDK 或 卸載VS2015安裝VS2017 ———————————————— 版權(quán)聲明:本文為CSDN博主「樓頂上的貓」的原創(chuàng)文章,遵循CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/qq_30113467/article/details/100013766

          posted @ 2020-02-22 14:46 狼愛(ài)上貍 閱讀(257) | 評(píng)論 (0)編輯 收藏

          Win10、Ubuntu雙系統(tǒng)正確卸載Ubuntu

          Win10、Ubuntu雙系統(tǒng)正確卸載Ubuntu

            此前我的Ubuntu不是wubi方式安裝的,因?yàn)槁?tīng)說(shuō)此方式安裝有多種缺陷,于是我選擇U盤安裝。這時(shí)想要卸載Ubuntu了,想到卸載這個(gè)也會(huì)有些小阻礙,就寫下這篇博文表示記錄一下Ubuntu的正確卸載方法。

            在每次開(kāi)機(jī)時(shí)都會(huì)有GURB菜單,這表示寫入到安裝Ubuntu的時(shí)候把GURB寫入到了MBR,所以卸載Ubuntu前首先需要將MBR重寫,去掉Ubuntu的GURB。如果朋友們不進(jìn)行這一步把Ubuntu強(qiáng)行干掉,會(huì)讓windows也直接GG。

            重寫MBR有兩種方法:

              一、放入Windows的安裝盤,進(jìn)入Windows安裝程序,進(jìn)入恢復(fù)控制臺(tái),輸入命令fixmbr。
                二、使用MbrFix工具進(jìn)行修復(fù)。

            我選擇的是MbrFix,下載地址:http://www.cnitblog.com/Files/CoffeeCat/MbrFix.rar

            下載完成后運(yùn)行命令行,然后進(jìn)入存放MbrFix.exe的目錄下,輸入指令MbrFix /drive 0 fixmbr /yes,重啟就可以直接進(jìn)入windows了。

            ps:輸入命令行提示"function failed.error 5:拒絕訪問(wèn)"如何解決?

              找到MbrFix.exe,右擊屬性,進(jìn)入兼容性選項(xiàng)卡,勾選"以管理員身份運(yùn)行此程序",確定退出,然后重新輸入指令即可解決。

            

            搞定第一步之后,右鍵我的電腦進(jìn)入管理,磁盤管理,如果是自己安裝的Ubuntu,應(yīng)該知道在安裝的時(shí)候分配了幾個(gè)分區(qū)在此系統(tǒng)上,如果只是雙系統(tǒng),除了Windows下有標(biāo)注卷名的其余應(yīng)該都是Ubuntu的分區(qū)。右鍵Ubuntu分區(qū),刪除卷,標(biāo)注藍(lán)條會(huì)變成綠條,把幾個(gè)分區(qū)全部刪除完成,右鍵新加卷一步一步完成恢復(fù)成為Windows的邏輯分區(qū)了。

          來(lái)自:https://www.cnblogs.com/-Yvan/p/4975326.html

          posted @ 2020-02-20 18:18 狼愛(ài)上貍 閱讀(1424) | 評(píng)論 (0)編輯 收藏

          Flutter配置gradle

          maven { url 'https://maven.aliyun.com/repository/google' }
          maven { url 'https://maven.aliyun.com/repository/jcenter' }
          maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }


          https://blog.csdn.net/qq_43225978/article/details/94008529

          posted @ 2020-02-19 09:46 狼愛(ài)上貍 閱讀(194) | 評(píng)論 (0)編輯 收藏

          Flutter打包apk

          https://www.jianshu.com/p/fabcfd621e01

          posted @ 2020-02-12 09:37 狼愛(ài)上貍 閱讀(173) | 評(píng)論 (0)編輯 收藏

          flutter 卡在Running Gradle task 'assembleDebug'...

          https://www.cnblogs.com/wupeng88/p/11455874.html

          posted @ 2020-02-11 16:37 狼愛(ài)上貍 閱讀(1403) | 評(píng)論 (0)編輯 收藏

          IPFS問(wèn)題

          1.把  "Gateway": "/ip4/127.0.0.1/tcp/8080"修改為:"Gateway": "/ip4/0.0.0.0/tcp/8080",這樣本機(jī)就可以用192.168WEB訪問(wèn)了。
          2.把WINDOWS防火墻入站的8080端口打開(kāi),這樣在局域網(wǎng)就能訪問(wèn)了。

          posted @ 2020-01-16 14:44 狼愛(ài)上貍 閱讀(125) | 評(píng)論 (0)編輯 收藏

          【我的區(qū)塊鏈之路】- 談一談IPFS原理及玩法

          https://blog.csdn.net/qq_25870633/article/details/82027510

          posted @ 2020-01-12 16:17 狼愛(ài)上貍 閱讀(169) | 評(píng)論 (0)編輯 收藏

          入門 Webpack,看這篇就夠了

          https://segmentfault.com/a/1190000006178770#articleHeader3

          posted @ 2020-01-04 17:22 狼愛(ài)上貍 閱讀(141) | 評(píng)論 (0)編輯 收藏

          文檔計(jì)劃 | IPFS API參考文檔

          https://www.jianshu.com/p/e38d5f733c81

          posted @ 2020-01-03 19:03 狼愛(ài)上貍 閱讀(209) | 評(píng)論 (0)編輯 收藏

          IPFS環(huán)境搭建和用ipfs-api訪問(wèn)ipfs網(wǎng)絡(luò)

          https://blog.csdn.net/mongo_node/article/details/80143631

          posted @ 2020-01-03 17:55 狼愛(ài)上貍 閱讀(341) | 評(píng)論 (0)編輯 收藏

          MySQL-Front連接MYSQL錯(cuò)誤永久方案

          在之前的博客中提到解決此問(wèn)題的方法是進(jìn)入mysql的命令窗口,執(zhí)行set global show_compatibility_56=on;

          但是該方法只能生效一次,當(dāng)電腦重啟或者mysql服務(wù)重啟的時(shí)候,就得重新再設(shè)置一次,下面提供一個(gè)永久生效的方法,即不通過(guò)上述方法,而是修改mysql的配置文件,找到my.ini的配置文件,在文件的最后添加:show_compatibility_56 = 1 即可。

          本人的my.ini的文件路徑是:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
          ————————————————
          版權(quán)聲明:本文為CSDN博主「讓愛(ài)遠(yuǎn)行2015」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
          原文鏈接:https://blog.csdn.net/u011065164/article/details/53393348

          posted @ 2020-01-01 13:52 狼愛(ài)上貍 閱讀(190) | 評(píng)論 (0)編輯 收藏

          安裝solc指定版本

          cnpm install -g solc@0.4.22

          posted @ 2020-01-01 12:28 狼愛(ài)上貍 閱讀(1618) | 評(píng)論 (0)編輯 收藏

          Node.js安裝及環(huán)境配置之Windows篇

          https://www.jianshu.com/p/03a76b2e7e00

          posted @ 2020-01-01 12:13 狼愛(ài)上貍 閱讀(171) | 評(píng)論 (0)編輯 收藏

          crx文件怎么安裝?谷歌瀏覽器Chrome打開(kāi)crx文件的方法

          https://www.jb51.net/softjc/402153.html

          posted @ 2019-12-29 22:57 狼愛(ài)上貍 閱讀(193) | 評(píng)論 (0)編輯 收藏

          go調(diào)用以太坊rpc寫入合約操作中的DATA數(shù)據(jù)解析(純字符串參數(shù))

          https://blog.csdn.net/weixin_42608885/article/details/100889008

          posted @ 2019-12-27 14:49 狼愛(ài)上貍 閱讀(273) | 評(píng)論 (0)編輯 收藏

          一步步構(gòu)建自己的智能合約

          https://segmentfault.com/a/1190000014797663

          posted @ 2019-12-26 16:09 狼愛(ài)上貍 閱讀(152) | 評(píng)論 (0)編輯 收藏

          如何審計(jì)一個(gè)智能合約

          https://cloud.tencent.com/developer/article/1522230

          posted @ 2019-12-26 15:37 狼愛(ài)上貍 閱讀(114) | 評(píng)論 (0)編輯 收藏

          如何調(diào)用以太坊智能合約

          https://www.cnblogs.com/KRDecad3/p/11745568.html

          posted @ 2019-12-26 15:31 狼愛(ài)上貍 閱讀(228) | 評(píng)論 (0)編輯 收藏

          私鑰生成錢包助記詞的流程

          https://www.cnblogs.com/hankal/p/9472920.html

          posted @ 2019-12-24 10:02 狼愛(ài)上貍 閱讀(641) | 評(píng)論 (0)編輯 收藏

          BIP39錢包助記詞規(guī)范

          https://www.jianshu.com/p/d5bac6d36dc6

          posted @ 2019-12-24 10:01 狼愛(ài)上貍 閱讀(510) | 評(píng)論 (0)編輯 收藏

          remix

          https://remix.ethereum.org/
          http://remix.hubwiz.com/
          https://ethereum.github.io/

          posted @ 2019-12-22 00:27 狼愛(ài)上貍 閱讀(99) | 評(píng)論 (0)編輯 收藏

          Web3與智能合約交互實(shí)戰(zhàn)

          最新內(nèi)容會(huì)更新在主站深入淺出區(qū)塊鏈社區(qū)
          原文鏈接:Web3與智能合約交互實(shí)戰(zhàn)

          寫在前面

          在最初學(xué)習(xí)以太坊的時(shí)候,很多人都是自己創(chuàng)建以太坊節(jié)點(diǎn)后,使用geth與之交互。這種使用命令行交互的方法雖然讓很多程序員感到興奮(黑客帝國(guó)的既視感?),但不可能指望普通用戶通過(guò)命令行使用Dapp。因此,我們需要一種友好的方式(比如一個(gè)web頁(yè)面)來(lái)與智能合約交互,于是問(wèn)題的答案就是web3.js

          Web3.js

          Web3.js是以太坊官方的Javascript API,可以幫助智能合約開(kāi)發(fā)者使用HTTP或者IPC與本地的或者遠(yuǎn)程的以太坊節(jié)點(diǎn)交互。實(shí)際上就是一個(gè)庫(kù)的集合,主要包括下面幾個(gè)庫(kù):

          • web3-eth用來(lái)與以太坊區(qū)塊鏈和智能合約交互
          • web3-shh用來(lái)控制whisper協(xié)議與p2p通信以及廣播
          • web3-bzz用來(lái)與swarm協(xié)議交互
          • web3-utils包含了一些Dapp開(kāi)發(fā)有用的功能

          Web3與geth通信使用的是 JSON-RPC ,這是一種輕量級(jí)的RPC(Remote Procedure Call)協(xié)議,整個(gè)通信的模型可以抽象為下圖。

          Web3 Communication Model

          搭建測(cè)試鏈

          在開(kāi)發(fā)初期,我們并沒(méi)有必要使用真實(shí)的公鏈,為了開(kāi)發(fā)效率,一般選擇在本地搭建測(cè)試鏈。在本文我們選擇的Ganache(在此之前使用的是testrpc,Ganache屬于它的升級(jí)版),一個(gè)圖形化測(cè)試軟件(也有命令行版本),可以一鍵在本地搭建以太坊區(qū)塊鏈測(cè)試環(huán)境,并且將區(qū)塊鏈的狀態(tài)通過(guò)圖形界面顯示出來(lái),Ganache的運(yùn)行界面如下圖所示。

          Ganache

          從圖中可以看到Ganache會(huì)默認(rèn)創(chuàng)建10個(gè)賬戶,監(jiān)聽(tīng)地址是http://127.0.0.1:7545,可以實(shí)時(shí)看到Current BlockGas PriceGas Limit等信息。

          創(chuàng)建智能合約

          目前以太坊官方全力支持的智能合約開(kāi)發(fā)環(huán)境是Remix IDE,我們?cè)诤霞s編輯頁(yè)面編寫如下代碼:

          pragma solidity ^0.4.21;  contract InfoContract {         string fName;    uint age;        function setInfo(string _fName, uint _age) public {        fName = _fName;        age = _age;    }        function getInfo() public constant returns (string, uint) {        return (fName, age);    }    }

          代碼很簡(jiǎn)單,就是簡(jiǎn)單的給nameage變量賦值與讀取,接下來(lái)切換到 run 的 tab 下,將Environment切換成Web3 Provider,并輸入我們的測(cè)試鏈的地址http://127.0.0.1:7545,這里對(duì)這三個(gè)選項(xiàng)做一簡(jiǎn)單說(shuō)明:

          • Javascript VM:簡(jiǎn)單的Javascript虛擬機(jī)環(huán)境,純粹練習(xí)智能合約編寫的時(shí)候可以選擇
          • Injected Web3:連接到嵌入到頁(yè)面的Web3,比如連接到MetaMask
          • Web3 Provider:連接到自定義的節(jié)點(diǎn),如私有的測(cè)試網(wǎng)絡(luò)。

          如果連接成功,那么在下面的Account的選項(xiàng)會(huì)默認(rèn)選擇 Ganache 創(chuàng)建的第一個(gè)賬戶地址。接下來(lái)我們點(diǎn)擊Create就會(huì)將我們的智能合約部署到我們的測(cè)試網(wǎng)中。接下來(lái) Remix 的頁(yè)面不要關(guān)閉,在后面編寫前端代碼時(shí)還要用到合約的地址以及ABI信息。

          安裝Web3

          在這之前,先在終端創(chuàng)建我們的項(xiàng)目:

          > mkdir info > cd info

          接下來(lái)使用 node.js 的包管理工具 npm 初始化項(xiàng)目,創(chuàng)建package.json 文件,其中保存了項(xiàng)目需要的相關(guān)依賴環(huán)境。

          > npm init

          一路按回車直到項(xiàng)目創(chuàng)建完成。最后,運(yùn)行下面命令安裝web.js:

          > npm install web3

          注意: 在實(shí)際安裝過(guò)程中我發(fā)現(xiàn)web3在安裝完成后并沒(méi)有 /node_modules/web3/dist/we3.min.js 文件,這個(gè)問(wèn)題在 issue#1041中有體現(xiàn),但官方好像一直沒(méi)解決。不過(guò)可以在這里下載所需的文件,解壓后將dist文件夾的內(nèi)容拷貝到 /node_modules/web3路徑下。

          創(chuàng)建 UI

          在項(xiàng)目目錄下創(chuàng)建index.html,在這里我們將創(chuàng)建基礎(chǔ)的 UI,功能包括nameage的輸入框,以及一個(gè)按鈕,這些將通過(guò) jQuery 實(shí)現(xiàn):

          <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="X-UA-Compatible" content="ie=edge">     <title>Document</title>      <link rel="stylesheet" type="text/css" href="main.css">      <script src="./node_modules/web3/dist/web3.min.js"></script>  </head> <body>     <div class="container">          <h1>Info Contract</h1>          <h2 id="info"></h2>          <label for="name" class="col-lg-2 control-label">Name</label>         <input id="name" type="text">          <label for="name" class="col-lg-2 control-label">Age</label>         <input id="age" type="text">          <button id="button">Update Info</button>       </div>      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>      <script>        // Our future code here..     </script>  </body> </html>

          接下來(lái)需要編寫main.css文件設(shè)定基本的樣式:

          body {     background-color:#F0F0F0;     padding: 2em;     font-family: 'Raleway','Source Sans Pro', 'Arial'; } .container {     width: 50%;     margin: 0 auto; } label {     display:block;     margin-bottom:10px; } input {     padding:10px;     width: 50%;     margin-bottom: 1em; } button {     margin: 2em 0;     padding: 1em 4em;     display:block; }  #info {     padding:1em;     background-color:#fff;     margin: 1em 0; }

          使用Web3與智能合約交互

          UI 創(chuàng)建好之后,在<script>標(biāo)簽中間編寫web.js的代碼與智能合約交互。首先創(chuàng)建web3實(shí)例,并與我們的測(cè)試環(huán)境連接:

          <script>     if (typeof web3 !== 'undefined') {         web3 = new Web3(web3.currentProvider);     } else {         // set the provider you want from Web3.providers         web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:7545"));     } </script>

          這段代碼是web3.js Github提供的樣例,意思是如果web3已經(jīng)被定義,那么就可以直接當(dāng)作我們的 provider 使用。如果沒(méi)有定義,則我們手動(dòng)指定 provider。

          這里可能會(huì)存在疑問(wèn):為什么 web3 會(huì)被事先定義呢?實(shí)際上,如果你使用類似 MetaMask(一個(gè) Chrome 上的插件,迷你型以太坊錢包)這樣的軟件,provider 就會(huì)被自動(dòng)植入。

          在上面代碼的基礎(chǔ)上,接下來(lái)設(shè)置默認(rèn)的以太坊賬戶:

          web3.eth.defaultAccount = web3.eth.accounts[0];

          在上文中我們使用 Ganache 已經(jīng)創(chuàng)建了 10 個(gè)賬戶了,這里我們選擇第一個(gè)賬戶當(dāng)作默認(rèn)賬戶。

          接下來(lái)需要讓我們的web3知道我們的合約是什么樣的,這里需要用到合約的 ABI(Application Binary Interface)ABI可以使我們調(diào)用合約的函數(shù),并且從合約中獲取數(shù)據(jù)。

          在上文中我們已經(jīng)在 Remix 中創(chuàng)建了我們的合約,這時(shí)重新回到 Remix,在 Compile 的 tab 下我們點(diǎn)擊Details 出現(xiàn)的頁(yè)面中我們可以拷貝合約的ABI,如下圖所示。

          將其復(fù)制到代碼中:

          var infoContract = web3.eth.contract(PASTE ABI HERE!);

          接下來(lái)轉(zhuǎn)到 run 的tab,拷貝合約的地址,將其復(fù)制到下面的代碼中:

          var info = InfoContract.at('PASTE CONTRACT ADDRESS HERE');

          完成這些我們就可以調(diào)用合約中的函數(shù)了,下面我們使用 jQuery 與我們的合約進(jìn)行交互:

          info.getInfo(function(error, result){     if(!error)         {             $("#info").html(result[0]+' ('+result[1]+' years old)');             console.log(result);         }     else         console.error(error); });  $("#button").click(function() {     info.setInfo($("#name").val(), $("#age").val()); });

          以上的代碼就簡(jiǎn)單地實(shí)現(xiàn)了對(duì)合約中兩個(gè)函數(shù)的調(diào)用,分別讀取和顯示nameage變量。

          到此我們就完成了全部的代碼,完整代碼可以在 InfoContract 中找到。在瀏覽器中打開(kāi)index.html測(cè)試效果如下圖(輸入名字和年齡后刷新)。

          本文的作者是蓋蓋,他的微信公眾號(hào): chainlab

          參考文獻(xiàn)

          ☛ 深入淺出區(qū)塊鏈 - 系統(tǒng)學(xué)習(xí)區(qū)塊鏈,打造最好的區(qū)塊鏈技術(shù)博客。

          posted @ 2019-12-21 14:46 狼愛(ài)上貍 閱讀(186) | 評(píng)論 (0)編輯 收藏

          GitHub項(xiàng)目、代碼搜索、使用等技巧

          https://blog.csdn.net/xiaomu_347/article/details/80729892

          posted @ 2019-12-21 10:14 狼愛(ài)上貍 閱讀(131) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 衡阳市| 巴林右旗| 西城区| 沧源| 景洪市| 西峡县| 曲阳县| 长宁县| 兴城市| 永川市| 阜康市| 汾西县| 丽水市| 汶上县| 全椒县| 霍林郭勒市| 久治县| 安康市| 邵阳市| 金溪县| 交口县| 麻江县| 衡阳市| 芜湖县| 卢龙县| 惠来县| 玉田县| 衡阳县| 霍林郭勒市| 苏尼特左旗| 兴化市| 潼南县| 和硕县| 盘山县| 连江县| 佛山市| 墨竹工卡县| 东至县| 聊城市| 都昌县| 湖北省|