Я написал служебные функции для этого. Теперь, когда я знаю о drop.levels gdata, он выглядит довольно похожим. Здесь они (из здесь ):
present_levels <- function(x) intersect(levels(x), x)
trim_levels <- function(...) UseMethod("trim_levels")
trim_levels.factor <- function(x) factor(x, levels=present_levels(x))
trim_levels.data.frame <- function(x) {
for (n in names(x))
if (is.factor(x[,n]))
x[,n] = trim_levels(x[,n])
x
}
Основным механизмом аутентификации в Hyperledger Fabric являются поставщики услуг членства (MSP). Вы устанавливаете их параллельно с блокчейном и можете подключать их, например, к LDAP.
Для аутентификации MSP выдает сертификат для открытого ключа пользователя, который затем может использоваться для аутентификации.
Подробнее о MSP в Документах Hyperledger: https://hyperledger-fabric.readthedocs.io/en/release-1.4/msp.html