Fill a tall, lidded stockpot with 2 inches (5 cm) of water, insert the steamer basket and bring to a boil over medium heat. Butter the inside of the can and set aside. Finally, fill a kettle with water and bring to a boil as well.
In a medium bowl, combine the all-purpose, rye flour, cornmeal, baking powder, baking soda, salt and allspice (if using).
To the bowl, add the buttermilk and molasses and stir to combine.
Pour the batter into the prepared can, then cover the top of the can with buttered aluminum foil. Carefully place it on the steamer basket in the stockpot. Check that the water is at a gentle, steady boil and place a lid on the stockpot.
Steam the bread for about 1 hour, checking the water level every 20 minutes. If the water is low, replenish it with the hot water from the kettle.
Begin to check the bread after 45 minutes by inserting a long wooden skewer into the center. When it comes out clean, the bread is done.
Turn off the heat, remove the lid and foil and let the bread cool for about 10 minutes before transferring it to a wire rack to cool completely before turning it out of the can.
Slice and serve with butter. Store leftovers wrapped well, in an airtight container at room temperature for up to 3 days.