小编Mic*_*ael的帖子

会员服务提供商的Hyperledger Fabric文档 - 问题

我阅读了Hyperledger Fabric会员服务提供商(MSP)上的文档,但并非所有内容都非常清楚.

关于MSP文档部分的链接是这样的:https: //hyperledger-fabric.readthedocs.io/en/release-1.2/membership/membership.html

  1. 从文档引用:

这是成员服务提供商(MSP)发挥作用的地方 - 它通过列出其成员的身份或通过识别来识别信任哪些根CA和中间CA以定义信任域(例如组织)的成员.哪些CA被授权为其成员发布有效身份,或者 - 通常情况下 - 通过两者的组合.

我对这一段的理解是这样的:OrgX的MSP要么有一个OrgX成员列表(因此可以简单地根据列表检查网络上的参与者),或者MSP定义允许哪个证书颁发机构发布身份OrgX的成员.这种理解是否正确?

  1. 如果OrgX的MSP定义了允许向OrgX成员发放身份的证书颁发机构,那么这如何保护网络免受不必要的参与者的侵害?假设OrgX的MSP使用"Symantec"作为其CA. 因此,拥有赛门铁克证书的每个人都被视为OrgX的成员,并且可以参与该网络.但是,如果我(谁不是OrgX的成员)获得"赛门铁克"的证书怎么办?我现在自动被认为是OrgX的余烬,可以加入网络吗?

  2. 有渠道MSP和本地MSP.根据文档,通道MSP和本地MSP都定义哪些标识属于某个组织(例如,OrgX).但是,如果信道MSP包含与本地MSP相同的信息(即基本上是身份列表),那么将信道MSP实例化到节点的重点是什么?

在此输入图像描述

hyperledger-fabric hyperledger-fabric-ca

7
推荐指数
1
解决办法
497
查看次数

取消订阅服务内的 Observables?

在查看代码示例时,我经常看到服务内部的可观察对象未被取消订阅的情况。

这是一个例子:

export class AuthGuard implements CanActivate {

    private isLoggedIn: boolean;
    private isLoggedIn$: Observable<boolean>;


    constructor(private authService: AuthService, private router: Router) {
        this.isLoggedIn$ = this.authService.isLoggedIn();

        this.isLoggedIn$.subscribe(res => {
            if (res) {
                this.isLoggedIn = true;
            } 
            else {
                this.isLoggedIn = false;
            }
        });
    }

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
        if (this.isLoggedIn) {
            return true;
        }
        else {
            this.router.navigate(['login']);
            return false;
        }     
    }
} 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您是否有理由不取消订阅可观察的 this.isLoggedIn$ ?或者上面的例子只是错误的编码导致内存泄漏?

subscriptions unsubscribe observable typescript angular

5
推荐指数
1
解决办法
4785
查看次数

Angular 项目:如何获取辅助 Firebase 应用程序的实例?

在我的 angular 应用程序中,我遇到了与提出以下问题的人相同的问题: Firebase 踢出当前用户

我希望能够在当前用户(= 创建新用户帐户的管理员)不被踢出的情况下添加一个新用户帐户。

显然,这可以通过创建第二个身份验证参考并使用它来创建用户(请参阅上面链接的问题的已批准答案):

var config = {apiKey: "apiKey",
    authDomain: "projectId.firebaseapp.com",
    databaseURL: "https://databaseName.firebaseio.com"};
var secondaryApp = firebase.initializeApp(config, "Secondary");

secondaryApp.auth().createUserWithEmailAndPassword(em, pwd).then(function(firebaseUser) {
    console.log("User " + firebaseUser.uid + " created successfully!");
    //I don't know if the next statement is necessary 
    secondaryApp.auth().signOut();
});
Run Code Online (Sandbox Code Playgroud)

按照这个答案,我尝试了以下方法:

registerUser(authData: AuthData, participantId: string, role: string): Promise<any> {

        let config = {
            apiKey: "API-Key",
            authDomain: "myApp-a7211.firebaseapp.com",
            databaseURL: "https://myApp-a7211.firebaseio.com",
        };

        let secondaryApp = firebase.initializeApp(config, "Secondary");


        return secondaryApp.auth().createUserWithEmailAndPassword(authData.email, authData.password)
        .then(function(firebaseUser) {
            console.log("User " + firebaseUser + " …
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-authentication angular

2
推荐指数
1
解决办法
525
查看次数