Put the black beans in a pot and cover with water by 2 inches. Let soak overnight. Discard any beans that float to the surface.
Fry the bacon in a medium saucepan and cook, stirring, over medium-high heat until slightly crisp. Add the onions and cook, stirring, for 3 minutes. Add the garlic and cook, stirring, for 30 seconds. Add the black beans, chicken stock, and bay leaf, and bring to a boil. Reduce the heat to medium-low and simmer uncovered, stirring occasionally, until the beans are tender, about 2 1/2 hours, adding more liquid as needed to keep moist. Remove from the heat. Discard the bay leaf. Add the cilantro,lime juice, cumin, salt, and cayenne, and stir to combine. Adjust the seasoning, to taste. Cover to keep warm until ready to serve.