Is Ripple's consensus algorithm another novel solution to the Byzantine General's problem? If so, how? If not, why doesn't it need to solve that problem?
Essentially, Ripple solves the BG problem by having an intermediate "unable to agree" state and designing the system such that nothing terrible happens if some nodes are unable to agree. If a node isn't confident that it has an agreement with the majority of other participating nodes, then it doesn't report transactions to clients as validated.